Java 从Hibernate4迁移到5

Java 从Hibernate4迁移到5,java,hibernate,Java,Hibernate,我在从Hibernate4.3迁移到Hibernate5时遇到一些问题。 我正在做一个主要的项目,我们使用SequenceHilGenerator来生成id,现在已经不推荐了。如何在没有重大更改的情况下更新此文件 这是我的Hibernate4.3代码 public class KSequenceGenerator extends SequenceHiLoGenerator { @Override public Serializable generate(SessionImplementor se

我在从Hibernate4.3迁移到Hibernate5时遇到一些问题。 我正在做一个主要的项目,我们使用SequenceHilGenerator来生成id,现在已经不推荐了。如何在没有重大更改的情况下更新此文件

这是我的Hibernate4.3代码

public class KSequenceGenerator extends SequenceHiLoGenerator {
@Override
public Serializable generate(SessionImplementor session, Object object) throws HibernateException {
    Serializable id = session.getEntityPersister(null, object).getClassMetadata().getIdentifier(object, session);
    return id != null ? id : super.generate(session, object);
}
在EJB中:

@GenericGenerator(name="id_gen", strategy="com.or.nk.ob.base.KSequenceGenerator", parameters = {@org.hibernate.annotations.Parameter(name = KSequenceGenerator.SEQUENCE, value = "building_id_seq")})
现在我有:

public class KSequenceGenerator extends SequenceStyleGenerator { 
public static final String SEQUENCE = "sequence";

@Override public Serializable generate(SharedSessionContractImplementor session, Object object) throws HibernateException { 
    Serializable id = session.getEntityPersister(null, object).getClassMetadata().getIdentifier(object, session); 
    return id != null ? id : super.generate(session, object); 
} 
}

身份证:


你看了建议改用的
SequenceStyleGenerator
了吗?我可以这样做吗?
公共类ksSequenceGenerator扩展SequenceStyleGenerator{@Override public Serializable generate(SharedSessionCompactCompleteMentor会话,Object对象)抛出HibernateeException{Serializable id=session.getEntityPersister(null,object).getClassMetadata().getIdentifier(object,session);返回id!=null?id:super.generate(session,object);}
试试看。顺便说一句,请不要把那么多的代码放在评论中,而是放在你的问题中。它很有效!谢谢:)你有没有看一下建议使用的
SequenceStyleGenerator
?我可以这样做吗?
公共类ksSequenceGenerator扩展了SequenceStyleGenerator{@Override public Serializable generate(SharedSessionCompactCompleteMentor会话,对象对象)抛出HibernateeException{Serializable id=session.getEntityPersister(null,对象).getClassMetadata().getIdentifier(对象,会话);返回id!=null?id:super.generate(会话,对象);}
试试看。顺便说一句,请不要把那么多代码放在评论中,而是放在你的问题中。它很有效!谢谢:)
@Id
@Column(name = "ID")
@GeneratedValue(generator = "id_gen", strategy = GenerationType.SEQUENCE)
public Long getId() {
    return id;
}