Hibernate 实体关系映射(未完成版)
来源:互联网 发布:淘宝商品出售编辑 编辑:程序博客网 时间:2024/06/05 00:30
1. 主键相同的一对一映射例如:用户的基本信息-->用户的登录密码用户基本信息的id和用户登录密码的id一致使用的是@OneToOne和@PrimaryKeyColumn如下(set(),get()省略)
@Entity(name="userinformation") public class UserInformation { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Integer id; @Column(unique=true,nullable=false,length=11) private String phone; @OneToOne @PrimaryKeyJoinColumn private UserPassword userPassword; }
@Entity(name="userpassword") public class UserPassword { @Id private Integer id; @Column(length=20,nullable=false) private String password; @OneToOne @PrimaryKeyJoinColumn private UserInformation userInformation; }
userPassword中id保存到数据库的时候,保存的是userInformation的getId()例如
Userinformation ui=new UserInformation(); ui.setPhone("123"); UserPassword up=new UserPassword(); up.setId(u.getId()); up.setPassword("1234"); session.save(ui) ; session.save(up);
Ps :需要注意的是,不能使用数据库的自动分配id,自动分配id会导致2个实体对象的id不一致,需要收到获取另外一个的id,然后将获取到的id赋值为该对象的id。2. 双边的一对多,对对一关系例如:一个用户可以发表多条影评用户实体->影评实体用户中,使用的是@OneToMany,影评中使用的是@ManyToOneUserInformation.java中
@OneToMany(mappedBy="userinformation")//注意,mappedBy中的字符串对应PublishCritic中的变量名 private List<PublishCritic> publishCritics;
PublishCritic.java中
@ManyToOne(fetch=FetchType.EAGER,cascade={CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH,CascadeType.REMOVE})//FetchType.EAGER设置为即时加载,casade为级联 @JoinColumn(name="uid",nullable=false)//name表示为该表中外键名为id,该外键指向userinformation表的id private UserInformation userinformation;
ps:注意每个类中记得设置set()和get()
0 0
- Hibernate 实体关系映射(未完成版)
- Hibernate实体关系映射
- Hibernate实体关系映射
- hibernate实体关系映射
- hibernate实体关系映射
- Hibernate实体关系映射
- Hibernate 映射实体关联关系(一)
- Hibernate 映射实体关联关系(二)
- Hibernate(六):实体关系映射
- hibernate 实体关系映射笔记
- Hibernate之实体关系映射
- Hibernate之实体关系映射
- Hibernate 实体关联关系映射
- Hibernate实体关系映射技巧
- Hibernate学习笔记(八)【映射实体关系】
- Hibernate学习笔记(八)【映射实体关系】
- hibernate 实体关系映射笔记(转载自51)
- Hibernate 实体关联关系映射----总结
- 洛谷1941 飞扬的小鸟
- OPENGL视频学习(八)
- 微信图文回复
- 曼巴精神
- Asp.net过滤器理论基础(上篇)
- Hibernate 实体关系映射(未完成版)
- TCP C/S 多进程模型
- C++中引用的概念[北京大学C++课程]
- Android系统的开机画面显示过程分析
- poj 2112 最大流之Dinic算法+Floyd
- javascript函数调用的时候加不加括号的区别
- [生存志] 第19节 历代大事件概览 南北朝
- Struts学习笔记二:Struts入门HelloWorld
- JavaScript函数的调用以及参数传递(转载)