hibernate的主键生成器:
generator元素:表示了一个主键生成器,它用来为持久化类实例生成唯一的标识
主键生成器:
1、程序员自己控制
assigned
提示:如果hibernate设置了程序员自己控制数据库主键设置了自动增长也不会成功
<generator class="assigned"></generator>
2、数据库控制
identity(标识列/自动增长) : MySQL
sequence : oracle
注意:id必须是数字类型
修改对应的数据库连接信息:
3、实现跨数据库控制
native
4、hibernate控制
increment :数字类型
uuid/uuid.hex :字符串类型
5、自己创建
写一个id类 实现 IdentifierGenerator接口
如下:
代码:
package com.zking.two.id;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.hibernate.HibernateException;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.id.IdentifierGenerator;
public class MyIdCreate implements IdentifierGenerator {
@Override
public Serializable generate(SharedSessionContractImplementor session, Object object) throws HibernateException {
// 公司名_模块名_时间戳
return "zking_order_"+new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
}
}