OpenJPA - как установить значение автоинкрементного поля при необходимости - PullRequest
0 голосов
/ 22 декабря 2010

Я настроил свой OpenJPA orm.xml для сопоставления сущности, чей первичный ключ имеет значение автоинкремента.Я использую атрибут

    <id name="objectId">
      <column name="ObjectId"/>
      <generated-value strategy="IDENTITY"/>
    </id>

, и все это прекрасно работает.

Однако в некоторых случаях я хочу установить конкретный ObjectId (который использовалсятогда запись была удалена).Это возможно?Должен ли я создать новую сущность для этого?

Заранее спасибо!

1 Ответ

0 голосов
/ 22 декабря 2010

Должен ли я создать для этого новую сущность?

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

  • Создать объект (с как можно меньшим количеством данных) в собственном запросе, используя EntityManager.createNativeQuery().
  • Затем загрузите объект по id с помощью EntityManager.find().
  • Теперь добавьте остальные данные.
...