从Hibernate映射
问题描述:
创建对象。如果我有一个这样的映射:从Hibernate映射
<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。
+0
很酷。谢谢!看到该文档,但仍不确定对象是如何创建的... – April 2009-07-13 14:57:32
而不是保存一个Type对象,我只是将字符串添加到集合`u.getType()。add(type_name)`。实验有效! – April 2009-07-13 14:23:44