使用Apache OpenJPA开发EJB 3.0应用,第4部分: 实体关联 - 编程入门网
有 BookExtend 类型的属性,而 BookExtend 并没有 Book 类型的属性,那么说明 Book 和 BookExtend 实体之间是单向关系;如果 BookExtend 中也定义了 Book 属性,那么 Book 和 BookExtend 实体之间就构成了双向关系。
cascade cascade 属性的类型是 CascadeType[] 类型。cascade 属性定义实体和实体 之间的级联关系。使用 cascade 属性定义的级联关系将被容器视为对当前类对象 及其关联类对象采取相同的操作,而且这种关系是递归调用的。 以演示场景中 Book 和 BookExtend 实体为例:如果设置 Book 和 BookExtend 存在级联关系,那么删除 Book 时将同时删除它所对应的 BookExtend 对象。而如果 BookExtend 还和其它的对象之间有级联关系,那么这 样的操作会一直递归执行下去。 cascade 的值只能从 CascadeType.PERSIST(级联新建)、 CascadeType.REMOVE(级联删除)、CascadeType.REFRESH(级联刷新)、 CascadeType.MERGE(级联更新)中选择一个或多个。还有一个更方便的选择是使 用 CascadeType.ALL,表示选择上面全部四项。 fetch fetch 属性是 FetchType 类型的属性。可选择项包括:FetchType.EAGER 和 FetchType.LAZY。前者表示关联关系的从类在主类加载的时候同时加载,后者表 示关联关系的从类在自己被访问时才加载。默认值是 FetchType.EAGER。 optional optional 属性是 boolean 类型的属性。optional 属性用于定义关联关系的 从类对象是否必须存在。如果设置为 false,那么该属性就不能设置为 null。默 认值是 true。 javax.persistence.OneToOne 用法举例
javax.persistence.JoinColumn 使用Apache OpenJPA开发EJB 3.0应用,第4部分: 实体关联(3)时间:2011-08-31 IBM 肖菁javax.persistence.JoinColumn 注释可以和 javax.persistence.OneToOne 注释一起使用,用于定义关联关系中的主类在数据库中对应的表通过什么字段和 关联关系中的从类的主键进行关联,这个注释是可选的,如果不提供该注释, OpenJPA 会默认使用”对象名_ID”和关联表的主键字段进行关联。 以演示场景中 Book 和 BookExtend 实体为例:如果 Book 的 bookExtend 属 性没有使用 javax.persistence.JoinColumn 注释进行声明,我们使用 OpenJPA 提供的 Mapping Tool 工具生成表格的时候,Book 类对应的表 Book 中将自动加 入列 bookExtend_ID,它的类型将和 BookExtend 对应表的主键字段id类型保持 一致。 JoinColumn 注释支持两个重要属性:name 和 referencedColumnName 属性。 name name 属性的类型是 String 类型。name 属性用于指定关联关系中的主类对应 的表中和关联关系中的从类的主键进行关联的字段的名称。以演示场景中 Book 和 BookExtend 实体的关系为例:如果 Book 实体对应的表使用“beID”字段和 BookExtend 实体对应表的主键进行对应,我们可以在 Book 类中为 bookExtend 属性提供 javax.persistence.JoinColumn 注释,设置它的 name 属性为“beID ”。 referencedColumnName referencedColumnName 属性的类型是 String 类型。referencedColumnName 属性指定关联关系中的从类与关联关系中的主类对应的表之间形成关联关系的字 段名称,通常用于关联关系中的从 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |