1.many-to-one

@ManyToOne
@JoinColumn(name = "user_id")

 2.many-to-many

/**
* 双向关联关系中,有且仅有一端是作为主体(owner)端存在的,
* 主体端负责维护联接列,对于不需要维护这种关系的从表则通过mappedBy属性进行声明, mappedBy的值指向主体的关联属性.
* joinColumns写的都是本表在中间表的外键名称, inverseJoinColumns写的是另一个表在中间表的外键名称。
* mappedBy跟JoinColumn/JoinTable总是处于互斥的一方. fetch=FetchType.EAGER
* 立即加载,默认为fetch=FetchType.LAZY 懒惰加载
*
* Set<>中使用了泛型,此处也可以不用指定 targetEntity属性。
*
*/

/** 积分指标项实体--many to many */
private java.util.Set<IntegrationItem> integrationItem = new java.util.HashSet<IntegrationItem>();

	@ManyToMany(fetch = FetchType.LAZY)
@Cascade(value = org.hibernate.annotations.CascadeType.SAVE_UPDATE)
@JoinTable(name = "sem_R_key_proitem", joinColumns = { @JoinColumn(name = "key_person_id") }, inverseJoinColumns = { @JoinColumn(name = "itegration_item_id") })
@OrderBy("id asc")
public java.util.Set<IntegrationItem> getIntegrationItem() {
return integrationItem;
} public void setIntegrationItem(
java.util.Set<IntegrationItem> integrationItem) {
this.integrationItem = integrationItem;
} 
/**
* mappedBy的值指向主体的关联属性 双向关联关系中,有且仅有一端是作为主体(owner)端存在的,
* 主体端负责维护联接列,对于不需要维护这种关系的从表则通过mappedBy属性进行声明, mappedBy的值指向主体的关联属性.
* mappedBy="roles" 表示 Authority为主控方,由Role维护Account相关操作。
*/

/** 重点人员信息实体--many to many */
private Set<PersonInfo> personInfo = new HashSet<PersonKeyInfo>();

	@ManyToMany(targetEntity = com.future.sem.entity.PersonInfo.class, mappedBy = "integrationItem", fetch = FetchType.LAZY)
public Set<PersonInfo> getPersonInfo() {
return personInfo;
}

3.one-to-one

/**
* @OneToOne:一对一关联
* mappedBy = "account":这里的一对一配置参考了account
* account是RegisteredUser类中的getAccount(), 不是RegisteredUser类中的
* account属性,RegisteredUser类中的OneToOne配置就是在getAccount()方法上面配的.
*/

  

@OneToOne(optional=false,mappedBy="account")
public RegisteredUser getRegisteredUser() {
return registeredUser;
}

  

/**
* 双向关联关系中,有且仅有一端是作为主体(owner)端存在的,
* 主体端负责维护联接列,对于不需要维护这种关系的从表则通过mappedBy属性进行声明, mappedBy的值指向主体的关联属性
*/
// cascade:级联,它可以有有五个值可选,分别是:
// * CascadeType.PERSIST:级联新建
// * CascadeType.REMOVE : 级联删除
// * CascadeType.REFRESH:级联刷新
// * CascadeType.MERGE : 级联更新
// * CascadeType.ALL : 以上全部四项
// @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, targetEntity
// = com.future.sem.entity.Account.class)
@OneToOne(optional = false, fetch = FetchType.LAZY)
@Cascade(value = org.hibernate.annotations.CascadeType.ALL)
@JoinColumn(name = "sem_account_id", nullable = true, unique = true)
public Account getAccount() {
return account;
}

  单向关联表:在当前的实体中保存personinfo的id,但不对原来的基础表进行任何操作

	@OneToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name = "person_info_id", unique = true, nullable = false, updatable = false)
public PersonInfo getPersonInfo() {
return personInfo;
}

  

最新文章

  1. jQuery弹出提示信息简洁版(自动消失)
  2. Charles 如何抓取https数据包
  3. Repeater上下排序按钮
  4. php实现查询百度google收录情况(示例代码)
  5. Jakarta-Commons- BeanUtils学习笔记:
  6. 空值排序(oracle/sqlserver)
  7. iOS获取UIView上某点的颜色值
  8. form里面的action和method(post和get的方法)使用
  9. java中String的final类原因
  10. showdoc 文档管理系统
  11. LPC 语言基础
  12. egret编译 FATAL ERROR: CALL_AND_RETRY_0 Allocation failed process out of memory解决
  13. 寻找遗失的tags
  14. Subplot 多合一显示
  15. 五大常用算法之二:动态规划算法(DP)
  16. win10企业版激活
  17. f5售后查询
  18. mysql中使用行号
  19. 图学ES6-5.正则的扩展
  20. Node.js学习笔记(4)--简单路由,老师学生id

热门文章

  1. 如何设置Xcode模拟器地图的当前位置
  2. Maven 依赖范围(转)
  3. oop的三大特点
  4. Windows 2008 R2 如何安装.net framework 3.5
  5. CentOS7-MySQL8安装-使用yum库安装
  6. JAVA 操作远程mysql数据库实现单表增删改查操作
  7. html Css PC 移动端 公用部分样式代码整理
  8. .NET 基础 一步步 一幕幕 [.NET基础知识点]
  9. chrome浏览器历史版本
  10. 111 Minimum Depth of Binary Tree 二叉树的最小深度