Как я переопределяю стратегию GenerationType с помощью аннотаций Hibernate/JPA?

Вы можете попробовать ниже -

UPDATE Customers
SET Customers.FirstName =Mid(FullName, 1, InStr(FullName, ' ') - 1)
12
задан Adrian Pronk 29 November 2008 в 23:46
поделиться

3 ответа

В коде выше, похоже на смешивание аннотаций на поля (суперкласс) и методы (подкласс). Быть в спящем режиме справочная документация рекомендует избежать этого, и я подозреваю, что она могла бы вызывать проблему. По моему опыту, с В спящем режиме, это более безопасно и более гибко для аннотирования метода считывания/методов установщика вместо полей так или иначе, таким образом, я предлагаю придерживаться того дизайна, если Вы можете.

Как решение Вашей проблемы, я рекомендую удалить идентификационное поле из Вашего Основного суперкласса в целом. Вместо этого переместите то поле в подклассы и создайте краткий обзор getId () и setId () методы в Вашем Базовом классе. Затем переопределите/реализуйте getId () и setId () методы в Ваших подклассах и аннотируйте методы считывания желаемой стратегией поколения.

Надеюсь, это поможет.

4
ответ дан 2 December 2019 в 22:06
поделиться

На методе в ребенке не добавляют второй тег @Id.

@Override // So that we can set Generated strategy
@GeneratedValue(strategy = AUTO)
public Integer getId() {
    return super.getId();
}
3
ответ дан 2 December 2019 в 22:06
поделиться

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

1
ответ дан 2 December 2019 в 22:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: