Первичные ключи Hibernate noop id - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь сохранить таблицу, используя файл отображения 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 по-прежнему пытается записать туда значение, когда функция сохранения возвращается, вызывая следующую ошибку:

идентификатор экземпляра третьего.party.object был изменен с 2 на ноль

Я мог бы написать оболочку для библиотек третьей части, унаследовав все классы и добавив поля для отношений, но я действительно надеялся на лучшее решение.классы.Как мне это сделать?

Есть идеи?

1 Ответ

0 голосов
/ 03 марта 2012

Я думаю, что классы компонентов - это то, что вы ищете раньше.

...