我正在尝试使用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更改为空
我可以为第三部分库编写一个包装器,继承所有类并为关系添加字段,但我真的希望有一个更好的解决方案。
想要将pks排除在类之外似乎是合理的。我该怎么做?
有什么想法吗?
发布于 2012-03-03 09:12:09
我认为组件类就是你早先要找的。
https://stackoverflow.com/questions/9536722
复制相似问题