ORM 对象关系映射,即将数据库中的表数据映射成对象。
本文讨论hibernate的注解式实体映射
1、一对一(one to one)
用户 与 用户扩展信息 (T_USR ----- T_USERINFO)
@OneToOne注释五个属性:targetEntity、cascade、fetch、optional 和mappedBy
targetEntity属性
:Class类型的属性。定义关系类的类型,默认是该成员属性对应的类类型,所以通常不需要提供定义。
cascade属性:CascadeType[]类型。该属性定义类和类之间的级联关系。定义的级联关系将被容器视为对当前类对象及其关联类对象采取相同的操作,而且这种关系是递归调用的。cascade的值只能从CascadeType.PERSIST(级联新建)、CascadeType.REMOVE(级联删除)、CascadeType.REFRESH(级联刷新)、CascadeType.MERGE(级联更新)中选择一个或多个。还有一个选择是使用CascadeType.ALL,表示选择全部四项。
fetch属性:FetchType类型的属性。可选择项包括:FetchType.EAGER 和FetchType.LAZY。默认值为FetchType.LAZY
optional属性:true,false optional = true 可不提供
mappedBy映射实体:
User.java
UserInfo.java
2、多对一 many to one
用户 与 组织机构 T_USR ----T_ORG
中间表关联
3、多对多 many to many
用户 与 用户 T_USR ------T_ROLE
中间表关联
User.java
Role.java
下载工程包 http://download.youkuaiyun.com/detail/l412400548/8399091
作为简单记录 如有心得加以补充 哈哈