0

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

表位置

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

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

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

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

将这些数据汇总为以下内容会很方便:

HashMap<Location, Double>

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

我宁愿执行 SQL 查询而不是 HQL。这通常是如何在休眠中实现的?

4

2 回答 2

1

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

请参阅:如何使用 Hibernate 调用自定义数据库函数?

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

干杯,

于 2013-03-18T20:53:24.477 回答
1

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

于 2014-01-29T03:14:29.623 回答