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>

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

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值