我正在尝试使用 id 字段设置为 access="noop" 的休眠 xml 映射文件来持久化表。我这样做是因为我不希望主键字段位于类文件中。我坚持的类来自第三方库,如果我更改它们,当第三方库更新时,这将是维护的噩梦。我希望我可以在不更改 java 类文件的情况下保持对象之间的关系。
IE
<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 从不访问该字段,但当 save 函数返回时,hibernate 仍然尝试在那里写入一个值,导致以下错误;
third.party.object 实例的标识符从 2 更改为 null
我可以为第三方库编写一个包装器,继承所有类并为关系添加字段,但我真的希望有一个更好的解决方案。
将 pks 排除在课程之外似乎是合理的。我怎么做?
有任何想法吗?