JPA @TableGenerator совместно используется несколькими объектами — часть 2

У меня есть ответ на этот вопрос SO, так как мы несколько JPA версии далее с 2010 года и как указано в комментариях под ответом:

Я пробовал... КАЖЕТСЯ работает только потому, что размер выделения равен 1. Но на самом деле создаются отдельные генераторы и работают отдельно. Если вы выберете размер распределения больше 1, вы увидите, что у вас будут разные диапазоны идентификаторов для каждой сущности. (Здесь используется Hibernate 3.6, может быть, он лучше работает с 4.x?)

Я хочу использовать один @TableGenerator для создания идентификаторов для нескольких объектов JPA. Итак, давайте предположим две сущности:

@Entity
public class MaritalStatus {
    @Id
    @TableGenerator(
            name = "appSeqStore", 
            table = "APP_SEQ_STORE", 
            pkColumnName = "NAME", 
            pkColumnValue = "ReferenceTables", 
            valueColumnName = "VALUE", 
            initialValue = 0, 
            allocationSize = 11)
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "appSeqStore")
    private Long id;
}

и

@Entity
public class Country {
    @Id
    // Can I reference the same generator here?
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "appSeqStore")
    private Long id;
}

Обе сущности не связаны, поэтому нет @MappedSuperclass или чего-то в этом роде, первая хранит семейное положение, а вторая страны. Тем не менее, я хочу, чтобы они получали идентификаторы из одной и той же последовательности, поэтому никогда не будет совпадения идентификаторов семейного положения и стран. Оба идентификатора также должны быть 11-доказательными.

Вопросы:

  1. Если мне не нужен @MappedSuperclass, могу ли я работать с одним @TableGenerator или мне нужно копировать генератор в каждую сущность?
  2. Если первый вопрос невозможен, и я использую @MappedSuperclass, это решение, чтобы остановить дублирование кода?

Я использую Hibernate JPA 2.1 на WildFly 8.2.


person Martijn Burger    schedule 25.02.2015    source источник