У нас есть хранимая процедура, которая генерирует числа для идентификаторов записей (entry_id_seq
). При следующей настройке код генерирует относительно большое число, чем вызывается непосредственно с помощью SQL.
Например, следующий код генерирует число «11195215652» для идентификатора. Но если я запускаю select entry_id_seq.NEXTVAL nv from dual
, он возвращает «32350910», что намного меньше.
@javax.persistence.SequenceGenerator(name = "seq",
sequenceName = "entry_id_seq")
public class SomeClassimplements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq")
@Column(name = "ID")
private Long id;
Я попробовал предложение ниже
@javax.persistence.SequenceGenerator(name = "seq",
sequenceName = "entry_id_seq", allocationSize = 1, initialValue= 1)
но выдает следующую ошибку:
Caused by: org.hibernate.HibernateException: increment size cannot be less than 1
at org.hibernate.id.enhanced.OptimizerFactory$LegacyHiLoAlgorithmOptimizer.<init>(OptimizerFactory.java:336)
at org.hibernate.id.SequenceHiLoGenerator.configure(SequenceHiLoGenerator.java:64)
at org.hibernate.id.factory.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:110)