Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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 Hibernate-注入MySql函数_Java_Mysql_Hibernate - Fatal编程技术网

Java Hibernate-注入MySql函数

Java Hibernate-注入MySql函数,java,mysql,hibernate,Java,Mysql,Hibernate,可以使用Hibernate(最好是CriteriaAPI)使用mySql函数进行排序 我希望使用的功能是:- SQRT( POW( 69.1 * ( {alias}.latitude - 51.3814282 ) , 2 ) + POW( 69.1 * ( -2.3574537 - {alias}.longitude ) * COS( {alias}.latitude / 57.3 ) , 2 ) ) {alias}的根所在位置 criteria.createCriteria("loc

可以使用Hibernate(最好是CriteriaAPI)使用mySql函数进行排序

我希望使用的功能是:-

SQRT( POW( 69.1 * ( {alias}.latitude -  51.3814282 ) , 2 ) + POW( 69.1 * (   -2.3574537 - {alias}.longitude ) * COS( {alias}.latitude / 57.3 ) , 2 ) ) 
{alias}的根所在位置

criteria.createCriteria("location.address"); 
我所要做的就是按照上面的距离方程对结果进行排序,但到目前为止,我还没有找到使用投影选项或顺序的方法。选择和我的想法

干杯,
R

这并不能完全回答您的问题,但是您从Criteria API中得到的是一堆很好的对象,这些对象遵循它们的接口。您是否考虑过将排序从查询中取消,而改为在内存中排序?用比较器表示排序函数应该很容易,然后就可以对集合进行排序了

我不知道如何在CriteriaAPI的
.addOrder
函数中表达它。您可以将任意SQL添加到限制中,但看起来无法按任意SQL排序


祝你好运。

这并不能完全回答你的问题,但是你从Criteria API中得到的是一堆很好的对象,它们都遵循它们的接口。您是否考虑过将排序从查询中取消,而改为在内存中排序?用比较器表示排序函数应该很容易,然后就可以对集合进行排序了

我不知道如何在CriteriaAPI的
.addOrder
函数中表达它。您可以将任意SQL添加到限制中,但看起来无法按任意SQL排序


祝你好运。

蒂姆干杯,这不完全是我想要的,但它确实很管用。随着数据集的增长,我对性能有点担心,但现在在内存中排序就可以了:)提姆,这并不完全是我想要的,但它确实起到了作用。随着数据集的增长,我对性能有点担心,但现在在内存中排序就可以了:)