`
kdboy
  • 浏览: 759199 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate的List映射

阅读更多
Answer类为Question类一对多关联关系,即一个问题对应多个答案。他们的表结构如下

如果希望Answer集合在Question类中作为List存储,我们可以使用hibernate的list或者bag标签来进行映射。

当使用list标签映射时,Question.hbm.xml中的配置如下:
<hibernate-mapping>
    <class name="mypackage.Question" table="question">
        <id name="id" type="integer">
            <column name="id" />
            <generator class="identity" />
        </id>
        <property name="userId" type="integer">
            <column name="user_id" />
        </property>
        <property name="content" type="string">
            <column name="content" length="200" />
        </property>
        <property name="time" type="timestamp">
            <column name="time" length="19" />
        </property>
        <list name="answers" inverse="true" cascade="all" lazy="false">
            <key column="question_id" not-null="true"/>
            <index column="position" />
            <one-to-many class="com.skyseminar.meeting.db.TMeetingAnswer"/>
        </list>
    </class>
</hibernate-mapping>
list标签中,key元素表示Answer表通过外键question_id参照Question表。
因List集合是个有序的集合,所以要使用<index column="position"/>来标明其顺序。(position为Answer表中附加字段)
因此在插入更新时便需要维护position字段,否则索引设置错误,取出的数据就会出现空值情况。

而是用bag标签映射list集合,则无需维护多余的字段。因此使用Hibernate进行一对多映射时,选择使用bag标签更佳。值得注意的是bag集合对象为无序排列,如果需要排序,可以使用order-by标签。
bag标签使用格式如下:
<bag name="answers" order-by="id asc" lazy="false">
    <key column="question_id" />
    <one-to-many class="mypackage.Answer"/>
</bag>
4
0
分享到:
评论
3 楼 gary_bu 2014-04-25  
嗯,有用,不过在添加时候bag标签应该增加cascade="all" 属性,否则会报错
2 楼 chnaghong 2012-11-01  
非常感谢,我刚在做问卷调查的那个东西,主题--问卷--答题--选项  多谢你的bag标签
1 楼 qinglintan 2010-10-21  
这位兄弟似乎做过问卷生成

相关推荐

    Hibernate容器映射技术(Set、List、Map)

    Hibernate容器映射技术(Set、List、Map)

    Hibernate映射集合属性List

    Hibernate映射集合属性List,用于映射集合属性 List Hibernate 自动生成表 不需sql

    hibernate集合的映射

    hibernate集合的映射 集合的映射 set list array map

    hibernate list集合映射

    NULL 博文链接:https://lijunabc.iteye.com/blog/443305

    Hibernate常见集合映射(Set,List_Array,Map,Bag)

    Hibernate常见集合映射(Set,List_Array,Map,Bag)

    Hibernate中List信息的配置

    这里总结了一些Hibernate中的List信息的配置

    详解Java的Hibernate框架中的List映射表与Bag映射

    主要介绍了Java的Hibernate框架中的List映射表与Bag映射,Hibernate是Java的SSH三大web开发框架之一,需要的朋友可以参考下

    hibernate 集合映射

    适合初学者了解在hibernate中配置set,list,map,bag等集合映射

    hibernate 中的 set map list 代码

    -Hibernate容器-Hibernate容器映射技术(Set、List、Map)(1)映射技术-Hibernate容器映射技术(Set、List、Map)(1)(Set、List、Map)(1)

    Hibernate实体关联速查表

    本速查表没有打成CHM! Hibernate实体映射表实用性较强! 希望大家喜欢!

    Hibernate3.1_学习源码

    06 06Hibernate_Collection : Hibernate的容器映射技术,包括list、set和map等。用法大体一致,数据库中的两张表,在实体层设计和配置文件都只有一个 其中数据库用到级联删除。配置文件分别用list、set和map元素...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     2.4.3 Hibernate映射类型接口  2.4.4 可供扩展的接口  2.5 小结  2.6 思考题 第3章 第一个Hibernate应用  3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射...

    Hibernate+中文文档

    22.2. Hibernate 映射 22.3. Hibernate 代码 23. 示例:复杂映射实例 23.1. Employer(雇主)/Employee(雇员) 23.2. Author(作家)/Work(作品) 23.3. Customer(客户)/Order(订单)/Product(产品) 23.4. 杂例 ...

    hibernate 教程

    Hibernate 映射 17.3. Hibernate 代码 18. 示例:不同的映射 18.1. 雇员/雇主(Employer/Employee) 18.2. 作者/著作(Author/Work) 18.3. 客户/订单/产品(Customer/Order/Product) 19. 最佳...

    hibernate3.2中文文档(chm格式)

    22.2. Hibernate 映射 22.3. Hibernate 代码 23. 示例:复杂映射实例 23.1. Employer(雇主)/Employee(雇员) 23.2. Author(作家)/Work(作品) 23.3. Customer(客户)/Order(订单)/Product(产品) 23.4. 杂例 ...

    HibernateAPI中文版.chm

    22.2. Hibernate 映射 22.3. Hibernate 代码 23. 示例:复杂映射实例 23.1. Employer(雇主)/Employee(雇员) 23.2. Author(作家)/Work(作品) 23.3. Customer(客户)/Order(订单)/Product(产品) 23.4. 杂例 ...

    Hibernate实战(第2版 中文高清版)

     6.1.4 映射list   6.1.5 映射map   6.1.6 排序集合和有序集合  6.2 组件的集合   6.2.1 编写组件类   6.2.2 映射集合   6.2.3 启用双向导航   6.2.4 避免非空列   6.3 用注解映射集合   6.3.1 ...

    Hibernate 中文API文档

    If you like to contribute to a particular translation, contact us on the Hibernate developer mailing list. Translator(s): RedSaga Translate Team 满江红翻译团队 &lt;caoxg@yahoo.com&gt; 在今日的企业环境...

    Hibernate中文详细学习文档

    22.2. Hibernate 映射 22.3. Hibernate 代码 23. 示例:复杂映射实例 23.1. Employer(雇主)/Employee(雇员) 23.2. Author(作家)/Work(作品) 23.3. Customer(客户)/Order(订单)/Product(产品) 23.4. 杂例 ...

Global site tag (gtag.js) - Google Analytics