HIBERNATE里有很多主键生成和策略如:uuid、native等,现我我们可以自己来定义主键生成的策略。
1: 新建一个实现IdentifierGenerator和Configurable接口的类。generate方法返回生成的最终的值。
configure:用来得到我们配置文件里传入的参数. 如下:
/***
* 自定义主键生成策略
*
* @author jianjun.wu
*
*/
public class PrimaryKeyGenertor implements IdentifierGenerator,Configurable {
@Override
public Serializable generate(SessionImplementor arg0, Object arg1)
throws HibernateException {
return Long.valueOf(998);
}
/***
* Configurable接口的方法
*/
@Override
public void configure(Type arg0, Properties arg1, Dialect arg2)
throws MappingException {
Object obj = arg1.get("length");
System.out.println("得到传入的参数length="+obj);
}
}
2: 在hbm里对我们自己定义的生成策略进行调用. 如下
<hibernate-mapping package="org.wujianjun.hibernate.domain"> <class name="Event" table="t_event"> <id name="id" column="event_id"> <generator class="org.wujianjun.hibernate.generator.PrimaryKeyGenertor"> <param name="length">44</param> </generator> </id> </class> </hibernate-mapping>
运行程序则可以看到生成的主键就会按我们的策略来生成了