Java JPA@OrderBy注释-排序字符串
我在实体类中使用@OrderBy注释对急切获取的集合进行排序。我在上面排序的列的类型是String。但是,在某些情况下,这些字符串可能包含数字。如何确保OrderBy注释将按数字顺序而不是1、10、2、3、4、5、6、7、8、9对存储为字符串的数字进行排序?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
将根据数据库进行排序,因为它将是SQL查询的一部分。使用自定义比较器将获得您的结果。您也可以考虑将2个组合(@ OrderBy,以便从数据库中以某种一致的顺序返回,然后为所需的命令的@ SoeTror比较器)
不确定是否有写比较器的想法,但这是一个开始。
< P>你可能想考虑将字符串作为0前缀存储到一个固定的最大长度,例如:001, 023、234等。然后,使用正常的字符串alpha比较,排序将正确工作。 请参阅,了解实现相同功能的JPA特定实现方式另一种选择是使用自定义比较器将集合存储在树集中
@SortComparable
从何而来?输入错误,它应该是@SortComparator。。更新我的答案