我有一对一的连接表映射。
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
答案 0 :(得分:0)
自己想出来。 &#39;代码&#39;使用JPA注释设置了类,并在属性声明上设置了注释。在实体的属性的getter方法上设置注释解决了这个问题。