标签:nal 中间 style column 关系 meta net 连接 一对多
一、jpa的简介和入门
JPA:Java Persistence API,接口规范
Hinernate内部为JPA规范提供实现
开发步骤(EntityManager):
1、导入额外包:hibernate-release-5.0.7.Final\lib\jpa\hibernate-entitymanager-5.0.7.Final.jar
2、使用jpa注解配置实体(实体与表的映射关系)
3、配置EneityManager的核心配置文件
在类加载路径下(src)下创建一个文件夹,名称META-INF
在META-INF目录下创建核心配置文件 persistence.xml
4、使用EntityManager的API对实体进行操作
二、Hibernate JPA的一对多的配置
创建实体
配置映射关系
customer方:
//当前客户有哪些联系人
//一的一方:配置一对多,在多的一方维护外键(一的一方放弃外键维护权)
//targetEntity:对方的字节码对象
//mappedBy: 对方通过哪个属性与我方维护关系(mappedBy在放弃外键维护权的一方配置)
@OneToMany(targetEntity=Linkman.class,mappedBy="customer")
private Set<Linkman> linkmans = new HashSet<>();
linkman方:
//当前联系人属于哪一个客户
//配置多对一
//targetEntity:对方的字节码对象
@ManyToOne(targetEntity=Customer.class)
//维护外键 JoinColumn:连接字段信息(外键信息)
//name:外键名称 referencedColumnName:与外键对应的主键名称
@JoinColumn(name="lkm_cust_id",referencedColumnName="cust_id")
private Customer customer;
操作实体
三、Hibernate JPA的多对多的配置
创建实体
配置映射关系
user方:
//当前该用户具备哪些角色
//配置多对多
//targetEntity:对方的字节码对象
//mappedBy:对方通过哪个属性与我方维护关系(放弃外键维护权的一方配置)
@ManyToMany(targetEntity=Role.class,mappedBy="users")
private Set<Role> roles = new HashSet<>();
role方:
//当前该角色被哪些用户使用
//配置多对多
//targetEntity:对方的字节码对象
@ManyToMany(targetEntity=User.class)
//User放弃外键维护权 Role去维护外键
//配置关系
//name:中间表的名称
@JoinTable(
name="sys_user_role",
//joinColumns的name:该方(Role)在中间表中产生的外键名称
//joinColumns的referencedColumnName:该方在中间表中产生的外键对应的主键名称
joinColumns={@JoinColumn(name="rid",referencedColumnName="role_id")},
//inverseJoinColumns的name:对方(User)在中间表中产生外键名称
//inverseJoinColumns的referencedColumnName:对方(User)在中间表中产生外键对应的主键名称
inverseJoinColumns={@JoinColumn(name="uid",referencedColumnName="user_id")}
)
private Set<User> users = new HashSet<>();
操作实体
ORM-->Jpa-->Hibernate的关系
标签:nal 中间 style column 关系 meta net 连接 一对多
原文地址:https://www.cnblogs.com/itworkerlittlewrite/p/9451237.html