Вопрос

Если у меня есть такое отображение, как это:

<class name="Users" table="users">
    <id column="id" name="id">
        <generator class="native"/>
    </id>
    ...
    <set name="types" table="types" cascade="all">
        <key column="user_id" />
        <element column="type_name" type="string" />
    </set>
</class>

Как должен быть создан пользовательский объект?Я сделал это:

User u = new User();
u.getType().add(new Type(type_name));
getHibernateTemplate().save(u);

Но там будет ошибка java.lang.ClassCastException: Type.Класс Type имеет только целое число user_id и строка type_name в нем с помощью get / set.

Почему это не работает?Где я могу найти документацию по сохранению объектов с коллекцией элементов?Большое вам спасибо.

Это было полезно?

Решение

Взгляните на http://docs.jboss.org/hibernate/stable/core/reference/en/html/collections.html.

Измените элемент на:

<element column="type_name" type="Type" />

Затем вы можете добавлять типы в набор.Прямо сейчас у вас это определено как String .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top