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;
}

  

hibernate的注解的更多相关文章

  1. Java、Hibernate(JPA)注解大全

    1.@Entity(name=”EntityName”) 必须,name为可选,对应数据库中一的个表 2.@Table(name=””,catalog=””,schema=””) 可选,通常和@Ent ...

  2. hibernate annotation注解方式来处理映射关系

    在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式 ...

  3. 批量产生ssh2项目中hibernate带注解的pojo类的快捷方法

    近几个月一直在忙于项目组的ios应用项目的开发,没有太多时间去研究web应用方面的问题了.刚好,昨天有网友问到如何批量产生hibernate带注解的pojo类的快捷方法,所谓批量就是指将当前数据库中所 ...

  4. Hibernate Annotations 注解

    Hibernate Annotations 注解 对于org.hibernate.annotations与org.hibernate.persistence,它的注释比如Columns,可是不知道怎么 ...

  5. Hibernate中用注解配置一对多双向关联和多对一单向关联

    Hibernate中用注解配置一对多双向关联和多对一单向关联 Hibernate提供了Hibernate Annotations扩展包,使用注解完成映射.在Hibernate3.3之前,需单独下载注解 ...

  6. Hibernate基于注解annotation的配置

    Annotation在框架中是越来越受欢迎了,因为annotation的配置比起XML的配置来说方便了很多,不需要大量的XML来书写,方便简单了很多,只要几个annotation的配置,就可以完成我们 ...

  7. 2.2、Hibernate用注解方式实现一对多、多对多关系

    一.一对多关系 1.在上一篇日志中用.xml配置文件项目基础上,再往lib目录先添加一个包-hibernate-jpa-2.0-api-1.0.0.Final.jar 2.新建一个com.st.bea ...

  8. hibernate用注解替代映射文件

    1.首先把原来的映射文件删掉,给实体类添加注解: @Entity //声明当前类为hibernate映射到数据库中的实体类 @Table(name="news") //声明tabl ...

  9. Hibernate+Oracle注解式完整实例

    MyEclipse10,新建Web Project,取名hibernate, jar包 1.Cat.java (实体类) package com.hibernate.bean; import java ...

  10. Hibernate用注解实现实体类和表的映射

    数据库mysql: 1.一对一 person50表password50表是一对一的关系: password50表中有外键 person_id person实体类: package com.c50.en ...

随机推荐

  1. Codevs 1140 Jam的计数法

    1140 Jam的计数法 题目描述 Description Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个 ...

  2. python-selenium-robotframework安装问题

    背景 当前系统安装了两个不同版本的python,分别是python27和python36(如图1),如图 说明 系统安装的两个python版本,python2中的python.exe默认不做修改:py ...

  3. bzoj1130:[POI2008]POD Subdivision of Kingdom

    传送门 看到数据范围这么小,不由得算了一下暴力复杂度,算出来情况一共只有1e7,不多,再乘上暴力判断的复杂度,好像T了,判断的话位运算可以方便解决 但是我写的优化似乎比较渣,还留了个log,但是还是n ...

  4. A.出题人的RP值

    链接:https://ac.nowcoder.com/acm/contest/358/A 题意: 众所周知,每个人都有自己的rp值(是个非负实数),膜别人可以从别人身上吸取rp值. 然而当你膜别人时, ...

  5. NodeJs前端构建工具 ——————之Grunt篇

    为何使用grunt? 如何搭建grunt? 开始第一个grunt项目 基础()合并js文件 开始第一个grunt项目 基础()压缩js 开始第一个grunt项目 基础()代码规范检测 开始第一个gru ...

  6. python_22(Form-CRM)

    第1章 CRM 1.1 建项目 1.2 settings1.3 规范url 1.4 公共的后台模板1.5 创建部门表 1.6 建库移库 1.7 母版继承 1.7.1 导入static 1.7.2 导入 ...

  7. python学习day13

    目录 JavaScript Dom jQuery JavaScript JavaScript 是世界上最流行的编程语言. 这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平 ...

  8. iOS 循环引用解决方案

    一.BLOCK 循环引用 一般表现为,某个类将block作为自己的属性变量,然后该类在block的方法体里面又使用了该类本身.构成循环引用. // 定义 block 的时候,会对外部变量做一次 cop ...

  9. git 设置了ssh key 还是需要输入账户和密码

    参考这篇文章https://blog.csdn.net/shahuhu000/article/details/86625987 git remote remove origingit remote a ...

  10. Azure 项目构建 – 构建直播教学系统之媒体服务篇

    本课程主要介绍如何在 Azure 平台上快速构建和部署基于 Azure 媒体服务的点播和直播教学系统, 实践讲解如何使用 Azure 门户创建媒体服务, 配置视频流进行传输,连接 CDN 加速等. 具 ...