繁体   English   中英

将NativeQuery映射到POJO

[英]Map NativeQuery to POJO

我有一个NativeQuery,我想映射到POJO。

我尝试了以下但它以无限循环结束。

public synchronized List<FreeIP> getFirstFreeHost() {
    String q = "SELECT i.subnet, h.ip_host FROM ip_addresses i join hosts h on i.id = h.ip_addresses_id ORDER BY i.subnet, h.ip_host";
    this.entityManager = this.entityManagerFactory.createEntityManager();
    Query query = this.entityManager.createNativeQuery(q);
    List<Object[]> rows = query.getResultList();
    List<FreeIP> result = new ArrayList<>();
    for (Object[] row : rows) {
        result.add(new FreeIP((String) row[0], (String) row[1]));
    }

    return result;
}

看看QLRM: https//github.com/simasch/qlrm

然后你可以这样做:

JpaResultMapper jpaResultMapper = new JpaResultMapper();

Query q = em.createNativeQuery("SELECT i.subnet, h.ip_host FROM ip_addresses i join hosts h on i.id = h.ip_addresses_id ORDER BY i.subnet, h.ip_host");

List<EmployeeTO> list = jpaResultMapper.list(q, FreeIP.class);

确保FreeIP具有一个构造函数,该构造函数接受查询的所有参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM