首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将本机查询结果映射到java类

如何将本机查询结果映射到java类
EN

Stack Overflow用户
提问于 2014-06-23 06:29:49
回答 1查看 336关注 0票数 0

我正在使用java编写java本地语言,我在课堂实践中得到了结果,但是我如何将距离变量映射到我的实践类.Please帮助我。

代码语言:javascript
运行
复制
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();

这是我的查询结果:请帮助如何将距离变量映射到我的类实践中。

代码语言:javascript
运行
复制
@Entity(name = "tb_practice")
public class Practice {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    private String address;

    private String city;

    private String distance;
}

这是普拉提斯桌。

EN

回答 1

Stack Overflow用户

发布于 2014-06-23 07:02:46

我认为您需要两个组作为派生表表达式。

您需要列出所有tb_practice表列,而不是column1...columnN,因此这是您的查询:

代码语言:javascript
运行
复制
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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24359661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档