PostgreSQL 和休眠按版本号 1.1.1.1.1 排序



My BDD is postgreSQL 9.1-901.jdbc4

我的ORM是休眠的,可以使用弹簧启动1.5.1和弹簧数据REST

我有一个带有数字版本的表格

1.1
1.3
1.2.1
1.3.12.4
1.5.10.3.5

我最多有 5 个数字。

在我的@respositoryRestResource

我尝试了这个自定义查询:

@query("select v FROM version v ORDER By cidr(numberVersion)")
List<Version> findByversionOrderBYNumberVersion();

此自定义查询仅在 4 个数字之前有效。

我尝试了其他自定义查询:

@query("select v FROM version v ORDER BY STRING_TO_ARRAY(numberVersion, '.')::int[] ASC")
List<Version> findByversionOrderBYNumberVersion();

我有一个错误:

由以下原因引起:org.hibernate.hql.internal.ast.QuerySyntaxException: 意外令牌:

有人可以帮助我吗? 请我没有其他想法...

我无法在 postgres 中创建函数。

我找到了解决方案...

@query(value = "select * FROM version ORDER BY STRING_TO_ARRAY(numberVersion, '.')\:\:int[] ASC", nativeQuery=true) 
List<Version> findByversionOrderBYNumberVersion();

感谢您的帮助!

最新更新