Hibernate IllegalArgumentException вызывающий установщик - PullRequest
0 голосов
/ 08 сентября 2011

Я думаю, что моя проблема с отображением решена, хотя сейчас я сталкиваюсь с новой ошибкой.Когда я пытаюсь запустить мой тестовый метод, мне теперь выдается сообщение «PropertyAccessException: IllegalArgumentException произошло при вызове установщика метода PageComment.userMadeTo».Я не уверен, что может быть причиной этого, я полагаю, что получатели и установщики в моем коде в порядке, так что, возможно, это проблема с отображением до сих пор?

HBM для PageComment:

<?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 Атрибут:

public void setUserMadeBy(String aUsername)
{
    userMadeBy = aUsername;
}

public String getUserMadeTo()
{
    return userMadeTo;
}

1 Ответ

1 голос
/ 08 сентября 2011
  <many-to-one name="userMadeTo" class="User" column="UserMadeTo" />

Из вашего сопоставления userMadeTo в PageComment должно вернуть класс User вместо String.Итак, сеттер и геттер должны быть:

public class PageComment{

    private User user;

    public void setUserMadeBy(User aUser)
    {
        this.user = aUser;
    }

    public User getUserMadeTo()
    {
        return this.user;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...