从 Hibernate 映射创建对象

发布于 2024-07-27 13:03:46 字数 719 浏览 1 评论 0原文

如果我有这样的映射:

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

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

If I have a mapping like this:

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

How should the user object be created? I did this:

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

But there will be the error java.lang.ClassCastException: Type.
The Type class only has an integer user_id and string type_name in it with get/set.

Why doesn't it work? Where can I find documentation on saving objects with collection of elements? Thanks you so much.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梨涡 2024-08-03 13:03:46

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

将元素更改为:

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

然后您可以将类型添加到集合中。 现在您已将其定义为字符串。

Have a look at http://docs.jboss.org/hibernate/stable/core/reference/en/html/collections.html.

Change the element to:

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

Then you can add types to the set. Right now you have it defined as String.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文