第十章 基于Annotation的关系映射 前期准备

1、使用MyEclipse生成基于Annotation的实体类与映射

这个过程只和第三章所说的的内容基本相同。这是其中有两个地方得注意的。

第三章的内容:http://blog.csdn.net/p_3er/article/details/8965305

注意一:

         在通过MyEclipse给项目增加Hibernate功能的时候。我们必须勾上Enable Hibernate Annotations Support。否则在通过MyEclipse生成基于Annotation的实体类时会无法使用这项功能。

注意二:

        通过MyEclipse生成实体类和映射的时候,应该选第二项生成基于Annotation的实体类,而不是之前的带.hbm.xml映射文件的实体类。

2、一个简单的Annotation的实体类

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
 * @Entity 表示下面的这个User是一个实体类
 * @Table 表示映射到数据表中的表名,其中的name参数表示"表名称"
 * @Id 表示主键Id,一般放在getXXX前面
 */
@Entity
@Table(name = "user", catalog = "hibernate")
public class User implements java.io.Serializable {
	private Integer id;
	private String username;

	public User() {
	}

	@Id
	@GeneratedValue
	@Column(name = "id", unique = true, nullable = false)
	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@Column(name = "username", nullable = false, length = 45)
	public String getUsername() {
		return this.username;
	}

	public void setUsername(String username) {
		this.username = username;
	}
}

3、Annotation的ID生成策略

使用@GeneratedValue(strategy=GenerationType)注解可以定义该标识符的生成策略

Strategy有四个值:

                            AUTO-
可以是identitycolumn类型,或者sequence类型或者table类型,取决于不同的底层数据库.

相当于native

TABLE-
使用表保存id值

原理:就是在数据库中建立一个表,这个表包含两个字段,一个字段表示名称,另一个字段表示值。每次在添加数据时,使用第一个字段的名称,来取值作为添加数据的ID,然后再给这个值累加一个值再次存入数据库,以便下次取出使用。

IDENTITY- identity column

SEQUENCE- sequence

注意:auto是默认值,也就是说没有后面的参数则表示为auto


4、hibernate.cfg.xml中配置Annotation的实体类

如果是通过MyEclipse生成的实体类的话,这个配置是由工具自动加载到配置文件中的。

<mapping class="cn.framelife.hibernate.entity.User" />

5、AnnotationConfiguration

        Annotation方式。在初始化Configuation时,应使用AnnoationConfiguration。这只是用于Application或才测试的时候。如果是Web项目我们还有其它的做法,如整合Spring来使用Spring提供的工具类来调用Hibernate的Api会更加方便。这个我们在说Spring的时候会说到。

  Configuration cfg = new AnnotationConfiguration();
		cfg.configure();
		SessionFactory sessionFactory = cfg.buildSessionFactory();
时间: 2024-09-19 08:55:04

第十章 基于Annotation的关系映射 前期准备的相关文章

第十章 基于Annotation的关系映射 一对一

如果下面部分内容有不明白的可以查找: 基于Annotation的关系映射 前期准备:http://blog.csdn.net/p_3er/article/details/9061911 基于映射文件共享主键方式实现一对一:http://blog.csdn.net/p_3er/article/details/9004419 基于映射文件唯一外键式实现一对一:http://blog.csdn.net/p_3er/article/details/9004471 1.共享主键方式: Person: @E

第十章 基于Annotation的关系映射 多对一与一对多

如果下面部分内容有不明白的可以查找: 基于Annotation的关系映射 前期准备:http://blog.csdn.net/p_3er/article/details/9061911 基于xml的多对一:http://blog.csdn.net/p_3er/article/details/9036759 基于xml的一对多:http://blog.csdn.net/p_3er/article/details/9036921 本文是把多对一与一对多结合起来了,形成一个双向的映射.如果只想要单向的

第十章 基于Annotation的关系映射 多对多

如果下面部分内容有不明白的可以查找: 基于Annotation的关系映射 前期准备:http://blog.csdn.net/p_3er/article/details/9061911 基于xml的多对多:http://blog.csdn.net/p_3er/article/details/9053415 Student: @Entity @Table(name = "student", catalog = "hibernate") public class Stu

Hibernate -- 注解(Annotation)关系映射

转自:http://www.cnblogs.com/tyler2000/archive/2011/01/20/1940354.html 1. Hibernate Annotation关系映射有下面几种类型:1)一对一外键关联映射(单向) 2)一对一外键关联映射(双向) 3)一对一主键关联映射(不重要)在这不演示 在实际中很少用,使用注解@PrimaryKeyJoinColumn 意思是说,我的主键去参考另外一张表中的主键,作为我的主键,但是在我测试使用 注解一对一主键关联映射,在生成表的时候,数

【HIBERNATE框架开发之六】HIBERNATE中ANNOTATION的关系映射&amp;&amp;组件映射!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/hibernate/821.html 准备工作,新建两个实体类如下: Husband.class: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 package com.himi;   import ja

【HIBERNATE框架开发之七】HIBERNATE使用ANNOTATION中各种关系映射的CRUD(增删改查)&amp;&amp;集合映射&amp;&amp;继承映射

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/hibernate/822.html       首先对于Annotation中CRUD的C(Create)操作:-------- 假设 :   User (MonyToOne)       Group OK,那么有如下 Junit Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Conf

Hibernate实体关系映射—Annotation

hibernate实体关系映射分为:     单边一对一,双边一对一:     单边一对多,单边多对一:     双边一对多,双边多对一:     单边多对多,双边多对多:     以及主键相同的单双边一对一.下面分别总结这几种关系映射的注解方法: 1.  单边一对一和双边一对一     单边一对一:比如一个学生(Student)有一个学生证(StudentCard),且Student类中有一个StudentCard对象: [java] view plain copy   @Entity    

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 数据关系映射ORM

      上一遍我介绍了AgileEAS.NET中统计的数据访问,本文我将来介绍AgileEAS.NET中的ORM实现思路.关于ORM的概念和介绍,我在此就不在重复介绍了,我相信大家都很熟悉这个概念了.       AgileEAS.NETORM并没有采用如NHibernate中映射文件的文件的模式,而是采用了直接硬编码的模式实现,ORM体系设计采用了属性/列>数据对象>数据集合(表)的结构:         最基本的思路是一个记录/实体(IEntity)映射一条记录,一个实体包括若干属性/

基于Annotation拦截的Spring AOP权限验证方法

在 Web 开发过程中,一个非常理想的开发过程是,开发人员在开发中并不需要关心权限问题,不需要在 Java 方法中写 很多逻辑判断去判断用户是否具有合适的角色和权限,这样开发会花费非常多的人力成本,因为所有的开发人员都需要了解 关于权限的详细内容,也非常不容易进行后期维护.我们希望有专门的很少数量的开发人员了解权限内容,并且可以随时方 便的修改和配置.于是,我们使用 Annotation,在 Java 方法之前使用 Annotation 可以非常方便的添加,修改和删除对 于权限的管理功能. 本文