参考文献:
http://blog.csdn.net/wanghuan203/article/details/7562395
http://www.cnblogs.com/hoobey/p/5508992.html
声明:主键生成配置直接摘抄了http://www.cnblogs.com/hoobey/p/5508992.html这篇博客的Hibernate各种主键生成策略与配置详解,主要是人家总结的太详细了,我就直接用了,特此感谢。
hibernate提供的主键生成策略,使我们可以在实体类的映射xml文件中设定关键字来告诉hibernate我们要使用的主键生成方式,然后hibernate会根据设定完成数据库的主键控制。
一、实体映射文件(*.hbm.xml)中对id生成策略配置格式
1:user的实体类user.java
package com.entity.hibernate;
public class User {
private int id;
private String name;
public User(){}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2:user对应的映射文件user.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.entity.hibernate.User">
<id name="id">
<generator class="uuid"/>
</id>
<property name="name"/>
</class>
</hibernate-mapping>
主键生成配置
<id name="id" column="表主键字段名" type="java.lang.Integer">
<generator class="设置主键生成策略类型"/>
</id>
二、主键生成配置
1:assigned
主键由外部程序负责生成,在 save() 之前必须指定一个。Hibernate不负责维护主键生成。与Hibernate和底层数据库都无关,可以跨数据库。在存储对象前,必须要使用主键的setter方法给主键赋值,至于这个值怎么生成,完全由自己决定,这种方法应该尽量避免。
<id name="id" column="id">
<ge