java – Hibernate:手动调用SequenceGenerator?
发布时间:2020-05-25 00:14:13 所属栏目:Java 来源:互联网
导读:我写了自己的IdGenerator: public class AkteIdGenerator implements IdentifierGenerator { public Serializable generate(SessionImplementor session, Object object) throws HibernateException { /
|
我写了自己的IdGenerator: public class AkteIdGenerator implements IdentifierGenerator {
public Serializable generate(SessionImplementor session,Object object)
throws HibernateException {
// if custom id is set -> use this id
if (object instanceof SomeBean) {
SomeBean someBean = (SomeBean) object;
Long customId = someBean.getCustomId();
if (customId != 0) {
return customId;
}
}
// otherwise --> call the SequenceGenerator manually
SequenceStyleGenerator sequenceGenerator ...
}
}
有谁知道如何从我的生成器类调用sequenceGenerator,我通常可以根据注释定义: @GeneratedValue(
strategy = GenerationType.SEQUENCE,generator = "MY_SEQUENCE")
@SequenceGenerator(
allocationSize = 1,name = "MY_SEQUENCE",sequenceName = "MY_SEQUENCE_NAME")
我会非常感谢任何解决方案!!!! 非常感谢,诺伯特 解决方法您可以通过Generator类调用SequenceGenerator.通过编写此代码.自定义生成器类应该是 public class StudentNoGenerator implements IdentifierGenerator {
public Serializable generate(SessionImplementor session,Object object)throws HibernateException {
SequenceGenerator generator=new SequenceGenerator();
Properties properties=new Properties();
properties.put("sequence","Stud_NoSequence");
generator.configure(Hibernate.STRING,properties,session.getFactory().getDialect());
return generator.generate(session,session);
}
} 而域类将是 import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@org.hibernate.annotations.GenericGenerator(
name = "Custom-generator",strategy = "com.ssis.id.StudentNoGenerator"
)
public class Student {
@Id @GeneratedValue(generator = "Custom-generator")
String rno;
@Column
String name;
public String getRno() {
return rno;
}
public void setRno(String rno) {
this.rno = rno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
