Hibernate使用连接表propertyaccessexception进行一对多映射

时间:2013-03-21 06:13:42

标签: hibernate join one-to-many

我有一对一的连接表映射。

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

服务和代码类被设置为hibernate实体,并且它们的id具有mutator。

联接表

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

1 个答案:

答案 0 :(得分:0)

自己想出来。 &#39;代码&#39;使用JPA注释设置了类,并在属性声明上设置了注释。在实体的属性的getter方法上设置注释解决了这个问题。