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 JPA@OrderBy注释-排序字符串_Java_Hibernate_Jpa_Annotations_Sql Order By - Fatal编程技术网

Java JPA@OrderBy注释-排序字符串

Java JPA@OrderBy注释-排序字符串,java,hibernate,jpa,annotations,sql-order-by,Java,Hibernate,Jpa,Annotations,Sql Order By,我在实体类中使用@OrderBy注释对急切获取的集合进行排序。我在上面排序的列的类型是String。但是,在某些情况下,这些字符串可能包含数字。如何确保OrderBy注释将按数字顺序而不是1、10、2、3、4、5、6、7、8、9对存储为字符串的数字进行排序?@OrderBy将根据数据库进行排序,因为它将是SQL查询的一部分。使用自定义比较器将获得您的结果。您也可以考虑将2个组合(@ OrderBy,以便从数据库中以某种一致的顺序返回,然后为所需的命令的@ SoeTror比较器) 不确定是否有写比

我在实体类中使用@OrderBy注释对急切获取的集合进行排序。我在上面排序的列的类型是String。但是,在某些情况下,这些字符串可能包含数字。如何确保OrderBy注释将按数字顺序而不是1、10、2、3、4、5、6、7、8、9对存储为字符串的数字进行排序?

@OrderBy
将根据数据库进行排序,因为它将是SQL查询的一部分。使用自定义比较器将获得您的结果。您也可以考虑将2个组合(@ OrderBy,以便从数据库中以某种一致的顺序返回,然后为所需的命令的@ SoeTror比较器)


不确定是否有写比较器的想法,但这是一个开始。

< P>你可能想考虑将字符串作为0前缀存储到一个固定的最大长度,例如:001, 023、234等。然后,使用正常的字符串alpha比较,排序将正确工作。 请参阅,了解实现相同功能的JPA特定实现方式


另一种选择是使用自定义比较器将集合存储在树集中

@SortComparable
从何而来?输入错误,它应该是@SortComparator。。更新我的答案