【Hibernate】set排序
使用hibernate进行一对多操作的时候,普遍使用HashSet进行操作。但是HashSet是无序集合,对此可以使用TreeSet进行排序。
1.将HashSet改为TreeSet
private Set<EbgRequmentItem> items = new HashSet<EbgRequmentItem>();
--》
private Set<EbgRequmentItem> items = new TreeSet<EbgRequmentItem>(new Comparator<EbgRequmentItem>(){
@Override
public int compare(EbgRequmentItem o1, EbgRequmentItem o2) {
//默认如果是比较结果为0的话,会认为重复,默认去掉,这里可以做下处理
if( o1.getName().compareTo(o2.getName()) == 0){
//返回-1不会去重
return -1;
}else{
//降序
//return o2.getName().compareTo(o1.getName());
//升序
return o1.getName().compareTo(o2.getName());
}
}
});
2.新增TreeSet排序比较器对象
package ?????.comparator; import ?????.EbgRequmentItem; import java.util.Comparator; /**
* 采购产品需求项排序比较器
*
* @author Tidy
*
*/
public class EbgRequimentItemComparator implements Comparator<EbgRequmentItem> { @Override
public int compare(EbgRequmentItem o1, EbgRequmentItem o2) {
return o1.getName().compareTo(o2.getName());
} }
3.在hbm.xml文件中添加sort属性
<set name="items" cascade="delete-orphan" inverse="true" lazy="true">
<key column="PRODUCT_REQ_ID"></key>
<one-to-many class="EbgRequmentItem"/>
</set>
--》
<set name="items" cascade="delete-orphan" inverse="true" lazy="true" sort="??????.comparator.EbgRequimentItemComparator">
<key column="PRODUCT_REQ_ID"></key>
<one-to-many class="EbgRequmentItem"/>
</set>
4.重启服务进行测试就可以了。
【Hibernate】set排序的更多相关文章
- hibernate查询排序
hibernate提供了两种排序方式:1:数据库排序,也就是说通过SQL语句在数据库内部就进行完了排序.2.内存排序,也就是说在数据库中把数据加载到内存中后在进行排序.推荐使用第一种排序方式,因为在数 ...
- hibernate映射排序
@OneToMany(mappedBy="member") @OrderBy(value = "TousuID desc")
- Java程序员从笨鸟到菜鸟全部博客目录
本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 大学上了一年半,接触java也一年半了,虽然中间也有其他东西的学习,但是还是以java为主 ...
- 《Java程序员由笨鸟到菜鸟》
<Java程序员由笨鸟到菜鸟> 在众多朋友的支持和鼓励下,<Java程序员由菜鸟到笨鸟>电子版终于和大家见面了.本电子书涵盖了从java基础到javaweb开放框架的大部分内容 ...
- [原创]java WEB学习笔记92:Hibernate学习之路-- -QBC 检索和本地 SQL 检索:基本的QBC 查询,带 AND 和 OR 的QBC,统计查询,排序,分页
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Hibernate自定义数据库查询(排序、输出条数)
Hibernate数据库操作类(eg:TexDAO.java) /* * queryString HQL语句,first开始条数, max输出条数 ,norder排序 * 例: List lis = ...
- hibernate 用hql做中文排序
用Hibernate+MySQL的童鞋是不是非常苦恼为什么MySQL不支持中文排序呢?没办法.仅仅有等utf8_unicode_cn 出来了.假设用hibernate即想实现跨库,又想不改代码怎样实现 ...
- Hibernate 一对多查询对set的排序
Hibernate可以进行一对多的关联查询,例如:查询了试卷题目,可以自动获取试卷题目的选项对象. 但是关联出来的集合对象是无序的,那么在显示的时候就会有问题,经过百度发现可以对Set进行设置排序. ...
- Hibernate的批量查询——Criteria查询所有、条件、分页、统计(聚合函数)、排序
1.查询所有的学生信息: public static void testSel() { Session session = HibernateUtils.openSession(); Transact ...
随机推荐
- [Swust OJ 589]--吃西瓜(三维矩阵压缩)
题目链接:http://acm.swust.edu.cn/problem/589/ Time limit(ms): 2000 Memory limit(kb): 65535 Description ...
- 设计模式的PHP实现示例(转)
symfony2 很多设计模式思想,下面的资料会有点帮助:http://www.open-open.com/lib/view/open1414996676559.html 阅读目录 Creationa ...
- [LeetCode]题解(python):073-Set Matrix Zeroes
题目来源: https://leetcode.com/problems/set-matrix-zeroes/ 题意分析: 输入一个m×n矩阵,如果出现有0,那么将对应的行和列都变成0. 题目思路: 简 ...
- Myeclipse安装Activiti
1.将压缩包内activiti文件夹放入Myeclipse\dropins文件夹内并修改activiti文件夹内Link文件指向自己的目录重启Myeclipse(这时打开bpmn文件仍会报错).2.将 ...
- [Windows编程] 使用AttachThreadInput 来捕捉其它窗口的键盘输入
在一些情况下(比如屏幕软键盘或者输入法程序),自己的窗口没有输入焦点但是想要当前焦点窗口的键盘输入消息,可以使用Win32 API函数AttachThreadInput()来解决这个问题.Attach ...
- JAVA FILE or I/O学习 - Desktop本地程序学习
public class DesktopKnow { public void know() { try { Desktop.getDesktop().open(new File("C:\\P ...
- Hierarchical Storage structure
1.hierarchical storage structure This notion of inserting a smaller, faster storage device (e.g ...
- grunt用来压缩前端脚本
grunt作为一个任务管理工具,提供丰富的插件和强大的自动化管理功能.需要安装node及npm. 主要使用到两个文件,一个是npm的依赖配置文件package.json { "name&qu ...
- Android 中文API (69) —— BluetoothAdapter[蓝牙]
前言 本章内容是 android.bluetooth.BluetoothAdapter,为Android蓝牙部分的章节翻译.本地蓝牙设备的适配类,所有的蓝牙操作都要通过该类完成.版本为 Androi ...
- BI商业智能项目中的若干风险要素
BI商业智能项目应在 “业务驱动,总体规划,统一设计,分期实施” 的总体设计原则下分期实施,采取Agile BI方法论迭代开展,先确保核心功能满足客户需求,在总体规划下不断完善整个系统,以提高可交付性 ...