HIBERNATE主键生成策略自己指定

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>

运行程序则可以看到生成的主键就会按我们的策略来生成了

    

你可能感兴趣的:(Hibernate)