`
jsczxy2
  • 浏览: 1275320 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

Hibernate中one-to-many的Order-by无法排序的问题

阅读更多

问题如下: 
在一个一对多的双向关联中在一的一方进行如下配置: 

Java代码  收藏代码
  1. <set name="flightOrderSectionDetails" inverse="true" order-by="sorts asc">  
  2.                 <key>  
  3.                     <column name="orderItemId" precision="11" scale="0" />  
  4.                 </key>  
  5.                 <one-to-many class="entity.FlightOrderSectionDetail" />  
  6.             </set>  

目地是在关联抓取时候对数据按sorts进行升序排序 
结果发现显示出来的数据是随机的! 
解决如下: 
开始怀疑是不是order-by有什么限制条件,查阅知,只有在排序字段不是映射表中的字段而是映射表父类的字段的时候才会无效。此处sorts不满足条件,是可以使用的。随后用comparator试验也没有成功。 
跟踪发现问题出在了po2vo的时候。由于使用的是集合HashSet。再转换过程中进行关联类迭代转换的时候原来的排序被打乱了。于是再关联类迭代转换的时候加入了排序的算法。问题解决。最后经过权衡,选择不用排序算法,而直接使用集合LinkedHashSet进行映射。问题也同样可以解决。 
LinkedHashSet维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,即按照将元素插入到集合中的顺序(插入顺序)进行迭代。(插入顺序不 受在集合中重新插入的 元素的影响)这样,就不会有迭代引起的乱序问题
分享到:
评论

相关推荐

    Hibernate one-to-many-annotation

    在Hibernate中,`one-to-many`关系是常见的实体间关系之一,表示一个实体可以与多个其他实体相关联。本文将深入探讨`Hibernate one-to-many`注解的使用和实现细节。 ### 一、`@OneToMany`注解概述 `@OneToMany`...

    hibernate-one-to-many-uni

    总之,"hibernate-one-to-many-uni"这个项目是为了展示如何在Hibernate中配置和使用一对多单向关联,帮助开发者理解和掌握这一常见关系的处理方式,从而在实际项目中更加高效地进行数据操作。通过学习这个示例,你...

    hibernate_6映射关系之one2many.zip_hibernate

    在Java的持久化框架Hibernate中,`One-to-Many`映射关系是对象关系映射(ORM)中常见的一种关联类型。它表示一个实体("One"端)与多个其他实体("Many"端)之间的关系。例如,一个学生可以有多个课程,一个老师可以...

    基于注解的关联关系Hibernate

    在这个“基于注解的关联关系Hibernate”的主题中,我们将深入探讨如何使用Hibernate的注解来配置不同类型的关联关系,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-...

    Hibernate关联关系hbm.xml中的相关属性

    在hbm.xml文件中,我们可以使用`&lt;many-to-one&gt;`, `&lt;one-to-many&gt;`, 和 `&lt;many-to-many&gt;`标签来定义这些关联。下面将详细介绍这三个标签及其相关属性。 首先,我们来看`&lt;many-to-one&gt;`标签,它表示多对一的关系。...

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

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联...

    Hibernate+中文文档

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联...

    Hibernate教程

    7.2.5. 一对多关联(One-to-many Associations) 7.3. 高级集合映射(Advanced collection mappings) 7.3.1. 有序集合(Sorted collections) 7.3.2. 双向关联(Bidirectional associations) 7.3.3. 三重关联...

    Hibernate中文详细学习文档

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联...

    hibernate映射关系

    本文将深入探讨Hibernate中的三种主要映射关系:一对一(One-to-One)、一对多(One-to-Many)以及多对多(Many-to-Many)。 ### 一对一映射(One-to-One) 一对一映射在现实世界中非常常见,例如一个人只有一个...

    HibernateAPI中文版.chm

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联...

    Hibernate集合映射

    在Order实体中,我们可以定义一个User类型的属性,并使用`&lt;many-to-one&gt;`标签映射。 ```xml &lt;many-to-one name="user" class="com.example.User" column="user_id"/&gt; ``` 然后,我们来了解**多对多映射**。在...

    Hibernate 中文 html 帮助文档

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联,...

    hibernate面试题2

    - 通过配置文件如`one-to-many`、`many-to-one`、`many-to-many`等映射关系,实现类与类的关联。 8. **Hibernate缓存机制**: - **一级缓存**(内部缓存):默认事务级缓存,每个Session内部维护。 - **二级缓存...

    Hibernate3.x关联映射示例

    3. **多对一(Many-to-One)关联**:与一对一关联相反,多个实体实例对应一个其他实体的实例。例如,多个订单(Order)可以关联到同一个客户(Customer)。 4. **多对多(Many-to-Many)关联**:一个实体可以关联多...

    Hibernate学习笔记_songjignhao_1

    在 Hibernate 映射文件中,我们使用 `&lt;set&gt;` 标签来定义集合关系,`&lt;one-to-many&gt;` 标签表示从 Customer 到 Order 的关系,而 `&lt;many-to-one&gt;` 标签则表示从 Order 到 Customer 的关系。注意设置 cascade 参数以处理...

    hibernate关系映射

    在Hibernate映射文件中,通过`&lt;many-to-one&gt;`标签将User类的group属性映射到t_user表的gid外键。 - 反之,如果一个User属于一个Group(一对多),则在Group类中添加一个User的集合。映射文件中,使用`&lt;set&gt;`标签...

    最全Hibernate 参考文档

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 三重关联...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联...

    hibernate组件之间的关联

    对于集合,可以设置其排序规则,例如 @OrderBy。 **组件映射(Component Mapping)** 组件映射允许将一个类的属性作为另一个类的一部分,类似于 Java 中的嵌套类。使用 @Component 或 @Embeddable 注解来标记可嵌入...

Global site tag (gtag.js) - Google Analytics