我正在使用java编写java本地语言,我在课堂实践中得到了结果,但是我如何将距离变量映射到我的实践类.Please帮助我。
List<Practice> resultData=(List<Practice>)em.createNativeQuery("SELECT *, ( 3959 * acos( cos( radians(?1) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(?2) ) + sin( radians(?1) ) * sin( radians( latitude ) ) ) ) AS distance FROM tb_practice HAVING distance < 200 ORDER BY distance;",Practice.class)
.setParameter(1, latitude)
.setParameter(2, longitude)
.getResultList();这是我的查询结果:请帮助如何将距离变量映射到我的类实践中。

@Entity(name = "tb_practice")
public class Practice {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String address;
private String city;
private String distance;
}这是普拉提斯桌。
发布于 2014-06-23 07:02:46
我认为您需要两个组作为派生表表达式。
您需要列出所有tb_practice表列,而不是column1...columnN,因此这是您的查询:
List<Practice> resultData= (List<Practice>)
em.createNativeQuery("
SELECT NEW Practice(
p.id,
p.address,
p.city)
FROM
(
SELECT
p.id,
p.address,
p.city,
( 3959 * acos( cos( radians(?1) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(?2) ) + sin( radians(?1) ) * sin( radians( latitude ) ) ) ) AS distance
FROM
tb_practice
GROUP BY
p.id,
p.address,
p.city
HAVING distance < 200
ORDER BY distance
) practice_by_distance
",Practice.class)
.setParameter(1, latitude)
.setParameter(2, longitude)
.getResultList();https://stackoverflow.com/questions/24359661
复制相似问题