@Id @GeneratedValue, но установленное собственное идентификационное значение

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

24
задан Arthur Ronald 21 January 2010 в 13:10
поделиться

2 ответа

Возможно, это излишество, но вы не думали о написании собственного CustomIDGenerator, который, возможно, является подклассом, скажем, AutoGenerator из hibernate и предоставляет пару методов, где вы можете установить id следующего генерируемого объекта класса, например

class MyGenerator extends .... {

public void setIdForObject(Class clazz, Long id) {
    //once you use this API, the next time an object of 
    //type clazz is saved the id is used
}

public void setIdForObject(Class clazz, Long id, Matcher matcher) {
    //once you use this API, the next time an object of 
    //type clazz is saved and the matcher matches yes the id will be 
    //assigned. Your matcher can match properties like name, age etc
    //to say the matched object
}
}

Это может быть сложно, но, по крайней мере, возможно согласно hibernate doco

8
ответ дан 29 November 2019 в 00:22
поделиться

Для случая использования вы можете вручную добавить этого пользователя. Один из способов сделать это - поместить операцию вставки в файл с именем "./import.sql" (в вашем клас-спате). Hibernate будет выполнять эти операции при запуске SessionFactory.

2
ответ дан 29 November 2019 в 00:22
поделиться
Другие вопросы по тегам:

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