Java 休眠noop id主键

Java 休眠noop id主键,java,hibernate,noop,Java,Hibernate,Noop,我试图使用hibernate xml映射文件持久化一个表,该文件的id字段设置为access=“noop”。我这样做是因为我不希望主键字段位于类文件中。我持久化的类来自第三方库,如果我更改它们,当第三方库更新时,维护将是一场噩梦。我希望能够在不改变java类文件的情况下保持对象之间的关系 i、 e 不幸的是,这并不完全有效,noop访问说明符请求hibernate从不访问该字段,但当save函数返回时,hibernate仍尝试在该字段中写入一个值,导致以下错误 第三方对象实例的标识符已从2更

我试图使用hibernate xml映射文件持久化一个表,该文件的id字段设置为access=“noop”。我这样做是因为我不希望主键字段位于类文件中。我持久化的类来自第三方库,如果我更改它们,当第三方库更新时,维护将是一场噩梦。我希望能够在不改变java类文件的情况下保持对象之间的关系

i、 e


不幸的是,这并不完全有效,noop访问说明符请求hibernate从不访问该字段,但当save函数返回时,hibernate仍尝试在该字段中写入一个值,导致以下错误

第三方对象实例的标识符已从2更改为null

我可以为第三部分库编写一个包装器,继承所有类并为关系添加字段,但我真的希望有更好的解决方案

将pks排除在类之外似乎是合理的。我该怎么做


有什么想法吗?

我认为组件类正是您想要的

<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>