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. MyBatis中的RowBounds

    myBatis中实现分页的方式是采用RowBounds这个类,用法如下,xml语句不变 传入两个参数,strat起始行, limit是当前页显示多少条数据,原理是RowBounds在处理分页时,只是简 ...

  2. 解决IIS中运行TopJUI左侧菜单不显示的问题

    TopJUI演示系统中,模拟数据保存在.json文件中,目前发现有部分用户的IIS容器默认情况下是不支持.json文件的请求的,因此需要配置一下,可参考下文配置解决: 一.IIS 6 1. MIME设 ...

  3. rn-splash-screen 启动页 安卓

    1. 进入项目npm install --save rn-splash-screen 2.react-native link rn-splash-screen 3.在项目android/app/src ...

  4. C - Heavy Transportation

    //改版dijkstra #include <iostream> #include <algorithm> #define Faster ios::sync_with_stdi ...

  5. [题解](gcd/lcm)luogu_P1072_Hankson的趣味题(NOIP2009)

    连续三次不开longlong导致wa!!! 不开longlong一时爽,一会提交火葬场!!! OI千万条,longlong第一条 乘法不longlong,提交两行泪 暴力luogu就能过了???打好暴 ...

  6. python使用C扩展

    CPython还为开发者实现了一个有趣的特性,使用Python可以轻松调用C代码 开发者有三种方法可以在自己的Python代码中来调用C编写的函数-ctypes,SWIG,Python/C API.每 ...

  7. Tinghua Data Mining 5

    ID3 ID3算法倾向于分的很细的变量 C4.5加入分母为惩罚量

  8. vue 中的router 配置问题 导致的内存溢出~~~

    最近的项目用到 vue, 各种踩坑中. 其中一个就是router映射表写的稍有不慎,就会出现内存溢出的问题, 而且也不会具体告诉你哪里出错,所以很是头疼~~~ 出错多了,发现了一些router的一些规 ...

  9. c#学习系列之跳出循环 break,continue

    break是完全跳出循环: ) { ) break; Console.WriteLine(a++); } 此处输出1,2,3,4,5,6,7,8 continue是跳出当前的循环: ;i<=;i ...

  10. wireshark工具集

    tshark 查看pcap文件第一个包的时间,当文件名不包含时间信息时非常有帮助 tshark -c 1 -T fields -e frame.time -r test.pcap dumpcap ed ...