JPA中实体属性如何映射为关联表实体的属性

如题所述

第1个回答  2018-07-16
案例:
表address中的customer_id为customer表中的id的值,通过customer_id可以找到相应的customer的记录。
将表customer映射为CustomerEO实体,代码如下:
@Entity
@Table(name="customer")
public class CustomerEO implement Serializable{
@Id
@GeneratedValue(stragegy=GenerationType=AUTO)
private int id;

@OneToMany(casade={CascadeTypeType.ALL})
@JoinColumn(name="customer_id")
public Collection<AddressEO> getAddress() {
return address;
}
....
}
@OneToMany属性分析
# cascade属性表示与此实体一对一关联的实体的联级样式类型。联级样式上当对实体进行操作时的策略。
·不定义,则对关系表不会产生任何影响
·CascadeType.PERSIST (级联新建)
·CascadeType.REMOVE (级联删除)
·CascadeType.REFRESH (级联刷新)
·CascadeType.MERGE (级联更新)中选择一个或多个。
# targetEntity属性表示默认关联的实体类型,默认为当前标注的实体类;
# fetch属性是该实体的加载方式,有两种:LAZY和EAGER。默认为惰性加载,一般也建议使用惰性加载。
# mappedBy属性用于双向关联实体时使用。
@JoinTable属性分析:
# name属性为连接两个表的表名称。若不指定,则使用默认的表名称,格式如下:
"表名1" + "_" + "表名2"
# joinColumn属性表示,在保存关系的表中,所保存关联关系的外键的字段,并配合@JoinColumn标记使用;
# inverseJoinColumn属性与joinColumn类似,它保存的是保存关系的另外一个外键字段;
# catalog和schema属性表示实体指定点目录名称或数据库名称;
# uniqueConstraints属性表示该实体所关联的唯一约束条件,一个实体可以有多个唯一约束条件,默认没有约束;本回答被网友采纳
相似回答