WEB开发网
开发学院软件开发Java 使用 Apache OpenJPA 开发 EJB 3.0 应用,第 4 部... 阅读

使用 Apache OpenJPA 开发 EJB 3.0 应用,第 4 部分: 实体关联

 2010-04-19 00:00:00 来源:WEB开发网   
核心提示: optional optional 属性是 boolean 类型的属性,optional 属性用于定义关联关系的从类对象是否必须存在,使用 Apache OpenJPA 开发 EJB 3.0 应用,第 4 部分: 实体关联(4),如果设置为 false,那么该属性就不能设置为 null,以演示场

optional

optional 属性是 boolean 类型的属性。optional 属性用于定义关联关系的从类对象是否必须存在。如果设置为 false,那么该属性就不能设置为 null。默认值是 true。

javax.persistence.OneToOne 用法举例

public class Book { 
 // 其它实体映射内容… 
 /* 
 * 使用 OneToOne 注释表示该属性和 Book 类形成一对一关系,OneToOne 
 * 注释的 option 属性设为 True 表示该对象可以不存在,cascade 属性 
 * 设置为 CascadeType.ALL,表示 Book 和 BookExtend 对象级联新建、 更新、删除、刷新 
 */ 
 @OneToOne(optional=true,cascade=CascadeType.ALL) 
 public BookExtend bookExtend; 
} 

javax.persistence.JoinColumn

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”。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 Apache OpenJPA

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接