Могу ли я упростить аннотации Hibernate? - PullRequest
0 голосов
/ 21 октября 2019

По некоторым причинам я хотел бы использовать последовательности, генерируемые различными значениями, а не одну для всех таблиц, например:

@Entity
public class User {
       @Id
       @TableGenerator(name = "user", table = "hibernate_sequences", pkColumnName = "sequence_name",
           valueColumnName = "next_val", pkColumnValue = "user", allocationSize = 1)
       @GeneratedValue(strategy = GenerationType.TABLE, generator = "user")
       private Integer id;
}

Когда в моем приложении больше таблиц (сейчас их больше 50), яХотите упростить этот код, например:

@Entity
public class User {
    @Id
    @MyTableGenerator(name = "user")
    private Integer id;
}

Есть ли способ сделать это? В этом случае я хочу достичь двух целей. Сначала устанавливаются некоторые значения по умолчанию для аннотации (спящая аннотация, а не моя пользовательская аннотация). Во-вторых, используйте одну из моих пользовательских аннотаций, представляющих несколько спящих аннотаций.

Извините, если я не объяснил свой вопрос хорошо, и, пожалуйста, укажите на это.

1 Ответ

0 голосов
/ 21 октября 2019

Вы можете попробовать что-то вроде этого:

@Entity
@SequenceGenerator(name = "USER_ID_GENERATOR", sequenceName = "SEQ_USER")
public class User {

       @Id
       @GeneratedValue(generator = "USER_ID_GENERATOR", strategy = GenerationType.IDENTITY)
       private Integer id;
}
...