Java 设置@GenericGenerator的allocationSize
我以前有一个Java 设置@GenericGenerator的allocationSize,java,hibernate,jpa,orm,Java,Hibernate,Jpa,Orm,我以前有一个@SequenceGenerator的代码,参数为allocationSize=1 我需要用一个自定义的@GenericGenerator覆盖SequenceGenerator。但是,我看不到在自定义GenericGenerator策略类中指定我的allocationSize参数的方法。我能做什么?我已经得到了答案,是的,我可以创建一个CustomGenerator,然后使用@GenericGenerator,在该CustomGenerator中使用如下代码: public clas
@SequenceGenerator
的代码,参数为allocationSize=1
我需要用一个自定义的
@GenericGenerator
覆盖SequenceGenerator
。但是,我看不到在自定义GenericGenerator
策略类中指定我的allocationSize
参数的方法。我能做什么?我已经得到了答案,是的,我可以创建一个CustomGenerator,然后使用@GenericGenerator,在该CustomGenerator中使用如下代码:
public class UseExistingOrGenerateIdGenerator 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);
}
@Override
public void configure(Type type, Properties params, Dialect dialect) throws MappingException {
params.put(org.hibernate.id.SequenceGenerator.SEQUENCE, "HIBERNATE_SEQUENCE");
params.put(SequenceHiLoGenerator.MAX_LO, String.valueOf("49"));
super.configure(type, params, dialect);
}
}