@GeneratedValue аннотация - PullRequest
4 голосов
/ 26 мая 2011

У меня есть объект, у которого есть неключевой столбец, который я установил как автоматически сгенерированный в моей БД.

Я не могу использовать @GeneratedValue, поскольку он работает только для ключевых полей, насколько японять.

В этом случае как указать, что неключевой столбец генерируется автоматически?

Ответы [ 2 ]

1 голос
/ 26 мая 2011

Если вы не заинтересованы в том, чтобы ваш провайдер JPA генерировал для вас ключ при создании объекта, но хотите, чтобы он оставался обновленным только при создании базы данных и при использовании Hibernate: вы можете использовать @org.hibernate.annotations.Generated аннотация:

The annotated property is generated by the database.

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

0 голосов
/ 26 мая 2011

У меня была точно такая же проблема, и я решил ее, используя аннотацию @PrePersist.

Используйте его для метода, в котором вы манипулируете своим полем.

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

Надеюсь, это помогло. Мне интересны другие способы сделать это!

...