Первичные ключи Hibernate noop id
Я пытаюсь сохранить таблицу, используя файл отображения hibernate xml с полем id, установленным как access="noop". Я делаю это, потому что я не хочу, чтобы поле первичного ключа было в файле класса. Классы, которые я сохраняю, взяты из сторонней библиотеки, и если я изменю их, это будет кошмаром обслуживания, когда обновится сторонняя библиотека. Я надеялся, что смогу сохранить отношения между объектами, не изменяя файлы классов java.
т.е.
<hibernate-mapping>
<class name="blah" table="blah">
<id name="blah_id" type="long" access="noop" >
<column name="BLAH_ID" />
<generator class="native" />
</id>
<property name="value" type="double">
<column name="VALUE" />
</property>
</class>
</hibernate-mapping>
К сожалению, это не совсем работает, спецификатор доступа noop запрашивает, чтобы hibernate никогда не обращался к полю, но hibernate все еще пытается записать значение там, когда функция save возвращается, вызывая следующую ошибку;
идентификатор экземпляра third.party.object был изменен с 2 на ноль
Я мог бы написать оболочку для библиотек третьей части, унаследовав все классы и добавив поля для отношений, но я действительно надеялся на лучшее решение.
Кажется разумным хотеть не пкнуть классы. Как я могу это сделать?
Есть идеи?
1 ответ
Я думаю, что классы компонентов - это то, что вы ищете раньше.