背景:

User实体类 有个属性是 Set<PositionChange> 职位变更字段

如下:

PositionChange实体类  有个属性是positionStartDate   什么时候开始任职此职务的字段

现在有一个需求,想在查询出  User这个对象的时候 ,可以获取到 Set<PositionChange>中  用户最新任职的一条岗位记录,也就是展示当前用户所处的岗位信息。

但是,Set始终的无序的,想要取出Set中PositionChange的positionStartDate时间最新的一条,并且是在 取出User的时候 直接就是好的 我直接拿来用就行了

需求介绍完毕

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

解决途径:  在User实体中  新设置一个List<PositionChange>  用来装将Set按照自己的想法排序之后的结果

在使用的地方 直接取List里面的值即可。

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Set; /**
* User 用户
*/
@Entity
@Table(name = "user", catalog = "performance")
@JsonIgnoreProperties(value={"workaffs"})
public class User implements java.io.Serializable { private Set<Positionchange> positionchanges = new HashSet<Positionchange>(0);//岗位变动表 private List<Positionchange> positionChanges ;//新设置的List<>
//不让hibernate认为这是数据库的字段
@Transient
public List<Positionchange> getPositionChanges() {
positionChanges = new ArrayList<Positionchange>(positionchanges);
Collections.sort(positionChanges, new Comparator<Positionchange>() { @Override
public int compare(Positionchange o1, Positionchange o2) {
return o1.getPositionStartDate().after(o2.getPositionStartDate()) ? -1 : 1;
} });
return positionChanges;
} public void setPositionChanges(List<Positionchange> positionChanges) {
this.positionChanges = positionChanges;
}

【java】实体类中 Set<对象> 按照对象的某个字段对set排序的更多相关文章

  1. java 实体类中日期格式转换

    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss&quo ...

  2. JAVA实体类不要使用基本类型,基本类型包含byte、int、short、long、float、double、char、boolean

    由于JAVA的基本类型会有默认值,例如当某个类中存在private  int age;字段时,创建这个类时,age会有默认值0.当使用age属性时,它总会有值.因此在某些情况下,便无法实现age为nu ...

  3. java实体类和json串字段名称不一致或者与map中字段名称不一致使用注解转化

    package yuanCheng; import java.text.MessageFormat; import java.util.ArrayList; import java.util.List ...

  4. 转载:C++中两个类中互相包含对方对象的指针问题

    原文链接:http://www.cnblogs.com/hanxi/archive/2012/07/25/2608068.html 前几天很不爽,因为C++中两个类中互相包含对方对象的指针编译时提示某 ...

  5. Java定义bean实体类中的变量时变量名的问题

    首先:TMD,这个问题花了我两个多小时,居然是因为一个字母的大小写导致的,我瞬间就&Y^%^&%&()*%¥%¥¥&^#@%&; 事情是酱紫的: 我定义了一个变 ...

  6. Java循环遍历中直接修改遍历对象

    Java 循环遍历中直接修改遍历对象如下,会报异常: for (ShopBaseInfo sp: sourceList) { if(sp.getId()==5){ sourceList.remove( ...

  7. 利用JAXB实现java实体类和xml互相转换

    1.应用场景 在使用WebService实现数据上传下载,数据查询时,可以利用JAXB实现java实体类和xml互相转换 2.Demo 2.1 student.java 实体类,包含list(set同 ...

  8. 读取Excel文件存储在实体类中

    1.Maven文件 <!--读取Excel的架包--> <dependency> <groupId>org.apache.poi</groupId> & ...

  9. 解析java实体类

    对java实体类的众多理解: A .就是属性类,通常定义在model层里面 B. 一般的实体类对应一个数据表,其中的属性对应数据表中的字段. 好处: 1.对对象实体的封装,体现OO思想. 2.属性可以 ...

  10. JDBCUtils,根据当前MySQL数据库下面的表生成java实体类

    自己简单写的JDBCUtils,可以根据当前数据库下面的表生成java实体类,代码萌新,请多多包涵. 初始化配置: //驱动程序名//不固定,根据驱动 static String driver = & ...

随机推荐

  1. 2015多校第9场 HDU 5405 Sometimes Naive 树链剖分

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5405 题意: 给你一棵n个节点的树,有点权.        要求支持两种操作: 操作1:更改某个节点的 ...

  2. 18:django 日志系统

    django使用python内建的logging模块去建造自己的系统日志的,如果你想详细了解这个模块的话,请自己去看python的说明文档,这里仅仅介绍django中的日志系统 日志配置包括四个部分: ...

  3. hihocoder 1177 : 顺子

    #1177 : 顺子 时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 你在赌场里玩梭哈,已经被发了4张牌,现在你想要知道发下一张牌后你得到顺子的概率是多少? 假定赌场使用的 ...

  4. Python+Selenium 自动化实现实例-Css捕捉元素的几种方法

    #coding=utf-8 from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get("h ...

  5. hive学习(二) hive操作

    hive   ddl 操作官方手册https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL hive  dml 操作官方手 ...

  6. Developer Express控件gridcontrol中gridView的某一个单元格是否可以自由输入

    场景:在Developer Express控件gridcontrol中的gridView中,当医生开的临时医嘱的医嘱类型为"中草药","计价总量"单元格不可以自 ...

  7. Longest Valid Parentheses——仍然需要认真看看(动态规划)

    Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...

  8. [你必须知道的.NET]第二十八回:说说Name这回事儿

    发布日期:2009.3.18 作者:Anytao © 2009 Anytao.com ,原创作品,转贴请注明作者和出处. 1 缘起 老赵在谈表达式树的缓存(2):由表达式树生成字符串中提到,在描述Ty ...

  9. 【JBPM4】判断节点decision 方法1

    JPDL <?xml version="1.0" encoding="UTF-8"?> <process key="decision ...

  10. ImportError: No module named etree.ElementTree

    ImportError: No module named etree.ElementTree 排查N久,才发现是因为文件名是xml.py的缘故,文件名一定不要用关键词.....