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

1、使用MyEclipse生成基于Annotation的实体类与映射
这个过程只和第三章所说的的内容基本相同。这是其中有两个地方得注意的。


注意一:
         在通过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



4hibernate.cfg.xml中配置Annotation的实体类
如果是通过MyEclipse生成的实体类的话,这个配置是由工具自动加载到配置文件中的。
<mapping class="cn.framelife.hibernate.entity.User" />


5AnnotationConfiguration

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

  Configuration cfg = new AnnotationConfiguration();
		cfg.configure();
		SessionFactory sessionFactory = cfg.buildSessionFactory();






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值