从Hibernate映射创建对象

时间:2009-07-13 14:16:17

标签: java mysql hibernate classcastexception

如果我有这样的映射:

<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。

为什么不起作用?在哪里可以找到有关使用元素集合保存对象的文档?非常感谢你。

1 个答案:

答案 0 :(得分:2)

看看http://docs.jboss.org/hibernate/stable/core/reference/en/html/collections.html

将元素更改为:

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

然后您可以向集合中添加类型。现在你把它定义为String。