JPA实体映射关系

首页:在数据库中通过外键来表示引用关系,在持久化API中外键称为连接字段(JoinColumn).

OneToOne 双向映射关系建立

例如:一个用户(User.Class)拥有一个堆联系方式(Contact.Class),设计为带有级联关系.
public class User ....
@Id @@GeneratedValue
private Long user_id;
private String name;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "contact_id")
private Contact ct;
建立User类对Contact类的一对一映射关系,
在数据库user表中创建contact_id字段并设为外键关联contact表中的主键contact_id
如果不设置@JoinColumn中的name值,则默认创建字段'类名+属性名+ID',如contact_ct_id
设置针对全部操作级联属性,如删除用户,同时也会删除此用户的联系信息
public class Contact ....
@Id @@GeneratedValue
private Long contact_id;
private String email;
@@OneToOne(mappedBy = "ct")
private Set<User> user;
通过mappedBy元素表示关系的持有者(维护端)是User类,而非持有端(被维护端)是Contact类
关系的持有者(维护端)拥有连接字端(数据库中有外键)
这两行代码可以解释为由User类中的ct属性来完成Contact类对User类的关系映射
只表示了关系的映射,在数据中不会有任何操作

OneToMany ManyToOne 双向映射关系建立

例如:多个学生(Student)只有一个班主任(Master),设计为不带级联(删除一个学生,班主任仍然存在)
public class Student ....
@Id @@GeneratedValue
private Long student _id;
private String name;
@ManyToOne
@JoinColumn(name = "master_id")
private Master mt;
完成Student类对Master类的关系映射,在数据库student表中创建master_id字段与外键
public class Master ....
@Id @@GeneratedValue
private Long master _id;
private String master_name;
@OneToMany(mappedBy = "mt")
private Set<Student> st;
在Master类中,由Student类中的mt属性完成Master类对Student类的关系映射
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值