【发布时间】:2011-09-08 03:34:59
【问题描述】:
我想我的mapping issue 已经解决了,但现在我遇到了一个新错误。当我尝试运行我的测试方法时,我现在看到“PropertyAccessException:调用 PageComment.userMadeTo 的 setter 时发生 IllegalArgumentException”。我不确定是什么原因造成的,我相信我的代码中的 getter 和 setter 都很好,所以也许映射仍然有问题?
HBM 用户:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="User" table="user">
<id name="username" column="Username" type="string">
<generator class="assigned"></generator>
</id>
<property name="password" column="Password" type="string"></property>
<property name="firstname" column="Firstname" type="string"></property>
<property name="surname" column="Surname" type="string"></property>
<property name="email" column="Email" type="string"></property>
<property name="admin" column="Admin" type="integer"></property>
<set name="commentsMadeTo">
<key column="UserMadeTo"/>
<one-to-many class="PageComment"/>
</set>
</class>
</hibernate-mapping>
用于页面评论的 HBM:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="PageComment" table="PageComment">
<composite-id>
<key-property name="userMadeBy" column="UserMadeBy" type="string" />
<key-property name="time" column="Time" type="integer" />
<generator class="assigned"></generator>
</composite-id>
<property name="commentText" column="CommentText" type="string"></property>
<many-to-one name="userMadeTo" class="User" column="UserMadeTo" />
</class>
</hibernate-mapping>
userMadeTo 属性的 Getter/Setter:
public void setUserMadeBy(String aUsername)
{
userMadeBy = aUsername;
}
public String getUserMadeTo()
{
return userMadeTo;
}
【问题讨论】:
标签: java sql xml hibernate orm