Создайте пользовательскую временную аннотацию JPA - PullRequest
3 голосов
/ 18 июля 2010

Я хочу, чтобы некоторые из mycoulmns в сущности JPA принимали значения из базы данных во время вставок / обновлений, т.е. из Oracle sys_context. Я считаю, что временная аннотация JPA включает временные метки, сгенерированные базой данных во время вставки / обновлений. Можно ли как-нибудь создать пользовательский аннотации к этой теме несколько симилар или предоставляют некоторые значения по умолчанию во время вставки / обновления, может кто-то дать несколько указателей, если вы столкнулись с такой ситуацией.

1 Ответ

2 голосов
/ 18 июля 2010

Я хочу, чтобы некоторые из mycoulmns в сущности JPA принимали значения из базы данных во время вставок / обновлений

Настройте @Column таким образом, чтобы он не вставлялся и не обновлялся, и пометьте поле с помощью @Generated (специфическая аннотация Hibernate). Таким образом, Hibernate получит значение из базы данных после вставки, обновления. Из справочной документации:

2.4.3.5. Сгенерированные свойства

Некоторые свойства генерируются в вставить или обновить время по вашему база данных. Hibernate может справиться с такими свойства и запускает последующее выберите, чтобы прочитать эти свойства.

@Entity
public class Antenna {
    @Id public Integer id;
    @Generated(GenerationTime.ALWAYS) 
    @Column(insertable = false, updatable = false)
    public String longitude;

    @Generated(GenerationTime.INSERT) @Column(insertable = false)
    public String latitude;
}

Аннотируйте вашу собственность как @Generated Вы должны убедиться, что ваш вставляемость или обновляемость не конфликт со стратегией генерации ты выбрал. когда GenerationTime.INSERT выбрано, свойство не должно содержать вставляемых столбцы, когда GenerationTime.ALWAYS выбрана собственность не должна содержит вставляемый или обновляемый столбцы.

@Version свойства не могут быть @Generated(INSERT) по замыслу, имеет быть либо NEVER, либо ALWAYS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...