我发现很难实现以下示例:
表位置
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中实现的?
答案 0 :(得分:1)
您是否考虑过定义自己的方言?
请参阅:How can you call custom database functions with Hibernate?
或者,您可以使用所需的SQL创建视图,并将此视图映射到Hibernate实体。
干杯,
答案 1 :(得分:1)
我看到你找到了答案。 只是想补充一点,一个更简单的选择可能是在填充'distance'字段的函数上使用@PostLoad注释。