`
myrev
  • 浏览: 164222 次
  • 性别: 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框架的一个重要特性,它允许开发者直接在Java类上使用注解来定义对象的数据库映射,从而避免了传统的XML配置文件...

    Hibernate Annotation笔记

    ### Hibernate Annotation概述与实践 #### 一、Hibernate Annotation简介 Hibernate作为Java领域内最流行的ORM框架之一,在过去的几年中经历了显著的发展,已经成为Java数据库持久化的事实标准。它不仅功能强大,...

    Hibernate Annotation 学习笔记

    《Hibernate Annotation 学习笔记》 在Java的持久化框架中,Hibernate以其强大的功能和易用性成为开发者首选之一。而Hibernate Annotation则是Hibernate提供的一种基于注解的实体映射方式,它极大地简化了传统XML...

    Hibernate -annotation 学习笔记

    【Hibernate - Annotation 学习笔记】 Hibernate 是一个流行的开源Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发人员可以使用面向对象的方式处理数据存储。Annotation是Hibernate提供的一种元...

    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学习笔记(原版)

    8. **Annotation与XML配置**:Hibernate支持使用注解进行对象的映射,相比XML配置,注解更加简洁,减少了配置文件的维护工作,但XML配置在某些场景下可能更为灵活。 9. **环境准备**:安装Hibernate及相关依赖库,...

    马士兵hibernate学习笔记.docx

    《马士兵Hibernate学习笔记》是一份详尽的教程,涵盖了Hibernate框架的核心概念和技术要点。Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,它有效地解决了Java应用程序与数据库之间的数据交互问题,...

    hibernate学习笔记.

    【hibernate学习笔记】 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它极大地简化了数据库操作。以下是对Hibernate的学习要点的详细解释: 1. **建立第一个Hibernate版本的HelloWorld** - **...

    Hibernate学习笔记(培训学习时的笔记)

    【Hibernate学习笔记】 Hibernate是一个强大的Java对象关系映射(ORM)框架,它简化了数据库与Java应用程序之间的交互。本笔记将深入探讨Hibernate的核心概念、配置、实体管理、查询语言以及事务处理等方面,帮助...

    Hibernate学习笔记第二部分

    10. **注解(Annotation)**: Hibernate允许使用注解代替XML配置文件来描述实体和映射关系,使得代码更加简洁和易于理解。 在实际项目中,`.classpath`和`.project`文件是Eclipse IDE的工作空间配置文件,`src`目录...

    Spring和Hibernate学习笔记

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

    Hibernate学习笔记(1-13)

    【Hibernate学习笔记(1-13)】是传智播客李勇的教程,涵盖了Hibernate框架的基础到进阶内容。Hibernate是一个流行的ORM(对象关系映射)框架,它旨在解决Java面向对象编程与关系型数据库之间的模型不匹配问题,即...

    spring整合Hibernate学习笔记.docx

    在本学习笔记中,我们将深入探讨如何实现这一整合,以及 Spring 中用于简化 Hibernate 操作的 HibernateTemplate 类。 首先,Spring 作为一款全面的后端框架,它提供了 IoC(Inversion of Control,控制反转)和 ...

    尚学堂hibernate笔记

    ### 尚学堂Hibernate笔记知识点详解 #### 一、项目初始化与环境搭建 1. **新建项目**:在IDE中创建一个新的Java项目。 2. **构建用户库并添加所需的JAR包**: - 右键点击项目 -&gt; `Build Path` -&gt; `Configure ...

    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—详细学习笔记

    这篇详细的Hibernate学习笔记,主要聚焦于使用注解(Annotation)的方式进行配置,这是自Hibernate 3.0版本以来推荐的配置方式,相比XML配置,注解更加简洁且易于维护。 在开始深入学习之前,我们先了解一下...

Global site tag (gtag.js) - Google Analytics