`
myrev
  • 浏览: 163340 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

Hibernate Annotation 笔记

阅读更多
1、 Hibernation 默认值
  1) 字段(没有尝试过)
   
 @Column(columnDefinition = "tinyint default 0")

  2) 在 类 上加
   
 @org.hibernate.annotations.Entity(dynamicUpdate=true,dynamicInsert=true)

     会自动判断哪些值为空不再插入,更新语句中
 
2、 Hibernate 关联映射
  1) OneToOne
  表USER、ADDRESS(假设一个用户只有一个地址)
  领域模型User、Address
  User中有一个连接Address的外键 address_id
@OneToOne
@JoinColumn(name = “address_id”)
private Address address;
//如果须要反向,Address中如下设置:
@OneToOne(mappedBy = “address”)
private User user;

 
  2) OneToMany
  表ARTICLE(文章)、ARTICLETYPE(文章类型)
  领域模型 Article、ArticleType
  备注:class_id为表ARTICLE的外键
  ArticleType中设置如下注解:
@OneToMany
@JoinColumn(name = “class_id”, nullable = false)

  3) ManyToOne
  表ARTICLE(文章)、ARTICLETYPE(文章类型)
  领域模型 Article、ArticleType
  备注:class_id为表ARTICLE的外键 ,ARTICLETYPE中主键也为class_id
@ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.LAZY, targetEntity = ArticleType.class)
@JoinColumn(name = "class_id")
private ArticleType articleType;

 
  4) OneToMany 与 ManyToOne 双向关联
  在ManyToOne的配置上再加以下:
@OneToMany(mappedBy = "articleType")
private List<Article> articles;

补充:对OneToMany的双向映射,如果要OneToMany这一端维护关系,你需要删除mappedBy元素并将ManyToOne这端的@JoinColumn的insertable和updatable设置为false,按照Hibernate的官方文档的说法,这种是不太可取的,没有明显的优化,而且还增加了一些附加的UPDATE语句。
 
  5) 单向ManyToMany
  表 USER、ROLE、USER_ROLE
  领域模型User、Role
  User中在 roles 上方加注解:
 
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.LAZY)
@JoinTable(name = "USERS_ROLES", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
 
private Set<Role> roles = new LinkedHashSet<Role>();
//以下省略getter()、setter()方法

 
注意:如果集合没有使用范型,必需在@ManyToMany()中再加 targetEntity属性, 如上面加 targetEntity = Role.class
  6) 双向ManyToMany
  表 USER、ROLE、USER_ROLE
  领域模型User、Role
  User中在 roles 上方加注解:
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.LAZY)
@JoinTable(name = "USERS_ROLES", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
	 
private Set<Role> roles = new LinkedHashSet<Role>();
//以下省略getter()、setter()方法

  Role为反方,在users上方加注解:
@ManyToMany(mappedBy = "roles")
private Set<User> users = new LinkedHashSet<User>();
//以下省略getter()、setter()方法
		 
分享到:
评论
1 楼 yang1707 2012-09-03  
撒旦[b]法是[/b]

相关推荐

    Hibernate Annotation 笔记 总结 注解

    Hibernate Annotation 笔记 总结 注解 注解事务,声明事务,详解。

    Hibernate Annotation笔记

    简介: 在过去几年里,Hibernate不断发展,...Hibernate annotation使用了ejb JPA的注解,所以,下面安装配置hibernate annotation环境时,需要导入ejb的包。许多网上的资料都是jpa hibernate annotation方面的资料。

    Hibernate Annotation 学习笔记

    一步步hibernate annotation练习笔记, 实例操作,从经验中学习

    Hibernate -annotation 学习笔记

    Hibernate -annotation 学习笔记 详细总结~! Hibernate -annotation 学习笔记

    hibernate-annotation学习,笔记,

    hibernate-annotation学习,笔记,现在正学,感觉还不错,分享一下。

    Hibernate_annotation_学习笔记

    Hibernate_annotation_学习笔记 第1课 课程内容 6 第2课 Hibernate UML图 6 第3课 风格 7 第4课 资源 7 第5课 环境准备 7 第6课 第一个示例Hibernate HelloWorld 7 第7课 建立Annotation版本的HellWorld 9 第8课 ...

    马士兵hibernate学习笔记(原版)

    3 重Annotation,轻xml配置文件 ... 性能优化 1 注意session.clear()的运用,尤其在不断分页循环的时候 2 1+N问题 (典型的面试题) (详见 hibernate_2800_Hibernate_1+N项目) 3 list和iterate不同之处(//主要...

    Spring和Hibernate学习笔记

    Hibernate: 第一课:第一个hibernate项目 第二课:测试实体对象的生命周期 第三课:hibernate基本映射 ...第四课:spring对AOP的只是(采用Annotation的方式) 第五课:spring对AOP的只是(采用配置文件的方式)

    Hibernate笔记 马士兵

    第2课 Hibernate UML图 6 第3课 风格 7 第4课 资源 7 第5课 环境准备 7 第6课 第一个示例Hibernate HelloWorld 7 第7课 建立Annotation版本的HellWorld 9 第8课 什么是O/R Mapping 11 一、 定义: 11 二、 Hibernate...

    hibernate笔记

    3 hibernate annotation references 5 环境准备 5 1 下载hibernate-distribution-3.3.2.GA-dist 5 2 下载hibernate-annotations-3[1].4.0.GA 5 3 注意阅读hibernate compatibility matrix(hibernate 网站download) 5...

    Hibernate—详细学习笔记

    比较详实的Hibernate课堂笔记,该笔记中有大量的例子帮助了解消化,绝对是非常值得的下载资料

    hibernate 3.3学习笔记

    第10课 模拟Hibernate原理(OR模拟) 第11课 Hibernate基础配置 第16课 关系映射(重点 Annotation注解)

    Spring的学习笔记

    一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier 17 三、 @Resource(重要、推荐) 17 (一) JSR-250 17 (二) @Resource 17 四、 @Componet 18 五、 @Scope...

    spring2.5 学习笔记

    一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier 17 三、 @Resource(重要、推荐) 17 (一) JSR-250 17 (二) @Resource 17 四、 @Componet 18 五、 @Scope...

    Java/JavaEE 学习笔记

    Hibernate学习笔记..........180 第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联关系映射......................185 第四章 操纵持久化对象....................

    J2EE学习笔记(J2ee初学者必备手册)

    Hibernate学习笔记..........180 JavaEE@xuxiang 3 Java/JavaEE学习笔记Jonny xuxiang5612@sina.com 第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联关系映射....

    免费下载:自己整理的java学习资料

    javaAnnotation.doc java_xml_api.chm JAVA分页大全.txt JAVA设计模式.chm JAVA配置文件编写说明文档.pdf jboss.pdf log4j使用教程.txt struts_action.txt struts标签.chm swing02.doc Tomcat.chm webAndXml.pdf ...

Global site tag (gtag.js) - Google Analytics