我有一个休眠的实体类:
@Entity
@Table(name = "grade")
@JsonIgnoreType
public class StudentMaster implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "grade_id", unique = true, nullable = false)
private Integer gradeId;
@Column(name = "grade_name")
private String gradeName;
//getter and setter
}
我编写了一个查询,该查询返回对象数组的列表:字符串查询=从可用的等级= 1中选择T.gradeId,T.gradeName;
这返回一个对象数组列表
List<Object[]> list = session.createQuery(query.toString()).list();
清单来了像
[0]
>[0] = 5001
>[1] = "10"
[1]
>[0] = 5002
>[1] = "11"
[2]
>[0] = 5003
>[1] = "4"
[3]
>[0] = 5004
>[1] = "18"
and so on....
我试图按升序排序,例如4,10,11,18我尝试了以下代码段,但没有用
Collections.sort(list, new Comparator<StudentMaster>() {
public int compare(StudentMaster s1, StudentMaster s2) {
return s1.getGradeName().compareTo(s2.getGradeName());
}
});
有人可以帮我吗 我正在学习自己,并且是编码的新手,因此需要帮助。谢谢
我建议让DB尽力为您排序。只需在您的查询中添加订单。
更新:
由于要按存储为字符串的整数值排序,因此需要使用TO_NUMBER
特定的SQL方言语法将其转换为整数。内存中排序可以这样实现:
new Comparator<Object[]>() {
public int compare(Object[] o1, Object[] o2) {
return Integer.valueOf((String) o1[1]).compareTo(Integer.valueOf((String) o2[1]));
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句