0

我有一个带有连接表的一对多映射。

class service{private Long service_id}
class codes{private Long code_id}

服务和代码类被设置为休眠实体,并且它们的 id 具有修改器。

连接表

table servicecodes
(serviceid,
codeid);

我的服务类映射:

<class name="path.to.Service" table="SERVICE"
lazy="false">

 <set name="sc" table="ServiceCodes">
    <key column="serviceid"/>
    <many-to-many column="codeid" unique="true"
        class="path.to.Codes"/>
 </set>
</class>

在我的应用层中,我有:

serviceobj.set(Set<Codes>);
...
session.save(serviceobj);

在 session.save 行,抛出以下错误:

org.hibernate.PropertyAccessException: could not get a field value by reflection    getter of path.to.Codes.code_id
....
Caused by: java.lang.IllegalArgumentException: Can not set java.lang.Long field path.to.Codes.code_id to java.lang.String
4

1 回答 1

0

我自己想通了。'codes' 类是使用 JPA 注释设置的,并且注释是在属性声明上设置的。在实体属性的 getter 方法上设置注释解决了这个问题。

于 2013-03-27T03:27:24.557 回答