Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何按集合中对象的属性对列表进行排序?_Java_Hibernate_List_Sorting - Fatal编程技术网

Java 如何按集合中对象的属性对列表进行排序?

Java 如何按集合中对象的属性对列表进行排序?,java,hibernate,list,sorting,Java,Hibernate,List,Sorting,所以我不得不承认不能可靠地使用列表的顺序,因为hibernate会反转它,而每个人都说不要这样做,所以我在类中添加了一个字段作为position。我有: @Entity class Procedure { ... int procedureId; List<Task> tasks; ... } @Entity class Task { ... int taskId; int position; } @实体 课堂程序{ ... 国际程序; 列出任务; ... } @实体 课堂任务{

所以我不得不承认不能可靠地使用列表的顺序,因为hibernate会反转它,而每个人都说不要这样做,所以我在类中添加了一个字段作为position。我有:

@Entity
class Procedure {
...
int procedureId;
List<Task> tasks;
...
}

@Entity
class Task {
...
int taskId;
int position;
}
@实体
课堂程序{
...
国际程序;
列出任务;
...
}
@实体
课堂任务{
...
int taskId;
内部位置;
}
现在我不知道如何与列表交互。当我第一次从数据库中获取它并开始使用它时,我是否应该按位置对它进行排序,然后我可以保留我已经编写的所有用户重新排列代码,然后只需将所有位置重置为保存列表的顺序,以便我回来时可以求助

跳到实际问题:


这似乎是最好的方法,但如何按集合中对象的属性对列表排序?

要按位置排序,例如,可以使用

java.util.Collections.sort(tasks, new Comparator<Task>() {
@Override
public int compare(Task t1, Task t2) {
    return t1.getPosition() - t2.getPosition();
});
java.util.Collections.sort(任务,新比较器(){
@凌驾
公共整数比较(任务t1、任务t2){
返回t1.getPosition()-t2.getPosition();
});

Yuval=8-

如果希望Hibernate保留列表顺序,可能应该使用
映射索引列,如中所述,而不是将其添加为任务字段并自行排序


这样,Java代码就不必担心索引值。当Hibernate返回列表时,列表将被正确排序,当列表被修改时,Hibernate将负责更新索引。

啊,终于找到了正确的解决方案,尽管当我尝试实现它时,数据库已经遇到了问题,所以我没有ght没有实施此项目的真正解决方案,尽管下一步是肯定的。:)谢谢!