У меня есть 'собака' Entitiy с @Id и @ TableGenerator
...
@TableGenerator(table = "seq", name = "dog_gen", pkColumnName = "seq_name", valueColumnName="seq_val")
@Id @GeneratedValue(strategy = GenerationType.TABLE, generator = "dog_gen")
private Long id;
...
Есть ли способ повторно использовать тот же генератор таблиц (dog_gen) в другом объекте? Я хочу сохранить одинаковую последовательность идентификаторов в двух независимых сущностях, скажем
собака = 1,
собака = 2,
собака = 3,
кот = 4,
кот = 5,
собака = 6
и так далее ...
Обе сущности не имеют общего суперкласса для реализации какого-либо наследования со свойством id.
Если я добавлю @ GeneratedValue (generator = "dog_gen") на мою сущность cat, пропущенное объявление @TableGenerator выдает исключение, говорящее, что он не может найти генератор при запуске контекста.
Caused by: org.hibernate.AnnotationException: Unknown Id.generator: dog_gen
at org.hibernate.cfg.BinderHelper.makeIdGenerator(BinderHelper.java:413)
at org.hibernate.cfg.AnnotationBinder.bindId(AnnotationBinder.java:1795)
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1229)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:733)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:498)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:277)