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. 玲珑学院1072 【DFS】

    蛤蛤,略蠢. priority_queue 自定义优先级 和排序是反的 struct node { int x,y; friend bool operator< (node a,node b) ...

  2. unity sprite怎么获取切割后的图

    学习了一段时间的unity,对里面的组件有一个大致的了解,但是具体操作来说还不是很熟悉,今天看了一片关于unity sprite怎么获取切割后的图的文章,感觉还不错. 假设有一张png/tga图集,导 ...

  3. mysql--浅谈视图1

    这是对自己学习燕十八老师mysql教程的总结,非常感谢燕十八老师. 依赖软件:mysql5.6 系统环境:win 视图(view) 什么是视图? 答:视图是表通过某种运算得到的一个投影,占有一定空间的 ...

  4. NOIp2016 愤怒的小鸟 【状压dp】By cellur925

    题目传送门 注:本文中绿鸟==猪! 这道题开始一看数据范围我们就知道是一道状压dp,因为绿鸟仅有18个,但是开始看\(m\)好像没太懂什么意思.既然确定了是状压,那就来设计状态,一般状压的状态肯定是要 ...

  5. python如何用pip安装模块

    pip去python官网下载 我想写的是安装后怎么做,假设我们要安装pymysql模块 在python交互式模式中运行pip install pymysql 会抛出 语法错误,不知为何. 此时应该找到 ...

  6. 【转】String hashCode 方法为什么选择数字31作为乘子

    某天,我在写代码的时候,无意中点开了 String hashCode 方法.然后大致看了一下 hashCode 的实现,发现并不是很复杂.但是我从源码中发现了一个奇怪的数字,也就是本文的主角31.这个 ...

  7. memcpy/memmove?快速乘?

    memcpy?memmove? //#pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; ; ],b[n ...

  8. 获取span里面的值(特殊情况下 )

    如何获取A? <div class="warpper"> <span class="content"> A <span>12 ...

  9. Negut 上传乱码

    解决办法 修改 bat  文件的 格式为ANSI格式即可

  10. Java之内部类、包及代码块

    个人通俗理解: 1.内部类:有点类似于写在父类中的子类,根据位置不一样为不同的名字,和相应的访问方式不同:不过要访问外部类的话,需要充分运用好this(本类)的这个关键字:要是需要快速的创建子类对象的 ...