java如何重写Postgres的array_agg(expression)函数?
我正在使用hibernate调用Postgresarray_agg
函数。问题是我需要调用包含orderby的函数。我无法以正确的语法通过hibernate传递order by,因此我需要创建一个函数,该函数与array_agg
自动排序的功能完全相同。以下是我需要在函数中复制的内容:
array_agg(table.TEXT order by table.text asc)
我试了又试,但我想不出来——谷歌帮不了多少忙。提前谢谢
# 1 楼答案
我只是通过创建一个自定义聚合函数并使用final函数(FFUNC)就解决了这个问题
然后将聚合的数组传递给排序函数
# 2 楼答案
您可以通过向聚合函数提供一个有序集来替换缺少的功能,聚合函数在Postgres中有效,但不是标准的SQL方法(正如@Richard在他的评论中提到的):
或者,对于这样的简单情况,只需使用array constructor:
您应该能够通过有限的休眠方式实现这一点