Если вы хотите генерировать идентификаторы, которые являются общими (и уникальными) для нескольких постоянных объектов, используйте @TableGenerator. H2 и многие другие базы данных не имеют внутренней поддержки последовательностей, поэтому @SequenceGenerator не работает.
Вот быстрый пример использования уникального / общего @Id для двух объектов:
@Entity
public class Class1 {
// setting pkColumnValue of TableGenerator is very important ;-)
@Id
@TableGenerator(
name = "guid",
initialValue = 0,
allocationSize = 10,
table = "GUID_SEQ",
pkColumnName = "GEN_KEY",
valueColumnName = "GEN_VALUE",
pkColumnValue = "GUID")
@GeneratedValue(strategy = GenerationType.TABLE, generator = "guid")
private long id;
}
@Entity
public class Class2 {
// use the same pkColumnValue
@Id
@TableGenerator(
name = "guid",
initialValue = 0,
allocationSize = 10,
table = "GUID_SEQ",
pkColumnName = "GEN_KEY",
valueColumnName = "GEN_VALUE",
pkColumnValue = "GUID")
@GeneratedValue(strategy = GenerationType.TABLE, generator = "guid")
private long id;
}