Hibernate自定义查询

时间:2013-03-16 18:59:42

标签: hibernate

我发现很难实现以下示例:

表位置

Id Location longitude   latitude
1 l1        -5.938229   28.38129
2 l2        -7.389323   18.38129
3 l3        -9.378913   58.38129

我希望o映射以下查询并计算用户坐标给定的距离:

SELECT l.*, <formula to calc distance> as distance FROM Location as l

我在hbm文件中定义了Location实体,但我不知道如何包含默认数据模型中不存在的附加列“distance”。

将这些数据聚合在一起会很方便:

HashMap<Location, Double>

其中第一种类型表示位置,另一种表示与给定点的距离。

我更愿意执行SQL查询而不是HQL。 这通常是如何在hibernate中实现的?

2 个答案:

答案 0 :(得分:1)

您是否考虑过定义自己的方言?

请参阅:How can you call custom database functions with Hibernate?

或者,您可以使用所需的SQL创建视图,并将此视图映射到Hibernate实体。

干杯,

答案 1 :(得分:1)

我看到你找到了答案。 只是想补充一点,一个更简单的选择可能是在填充'distance'字段的函数上使用@PostLoad注释。