本文介绍了Hibernate:如何使用注释指定自定义序列生成器类名?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想使用注释指定以下 hbm 配置:
I want to specify following hbm configuration using annotations:
<id name="somePK" column=""somePK"" type="long">
<generator class="com.db.hibernate.KeyGenerator"/>
</id>
我不知道如何用
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_STORE")
我是否必须在每个实体类中指定@javax.persistence.SequenceGenerator
?
我可以在 @GeneratedValue
注释下只指定类名吗?
Do I have to specify @javax.persistence.SequenceGenerator
in each entity class?
Can I specify just the class name under @GeneratedValue
annotation?
推荐答案
请在下面找到我在项目中使用的相同代码集.
please find below set of code which i have used in project for the same.
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "XyzIdGenerator")
@GenericGenerator(name = "XyzIdGenerator",
strategy = "com.mycompany.myapp.id.BigIntegerSequenceGenerator",
parameters = {
@Parameter(name = "sequence", value = "xyz_id_sequence")
})
public BigInteger getId()
{
return id;
}
package com.mycompany.myapp.id;
import org.hibernate.id.SequenceGenerator;
...
public class BigIntegerSequenceGenerator
extends SequenceGenerator
{
@Override
public Serializable generate(SessionImplementor session, Object obj)
{
...
}
}
这篇关于Hibernate:如何使用注释指定自定义序列生成器类名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!