如何将 SQL 本机查询的结果映射到 java POJO 类(无实体)

发布于 2024-11-16 17:09:14 字数 225 浏览 1 评论 0原文

我有简单的 java pojo,它不是实体。

class MyClass {
    // fields, getter, setter and etc...
}

另外,我有 DAO 和一些用于执行本机 SQL 查询(createNativeQuery)的函数,

如何在没有 @Entity 的情况下将 SQL 本机查询的结果映射到 MyClass ?

I have simple java pojo and it's no entity.

class MyClass {
    // fields, getter, setter and etc...
}

Also I have DAO with some function for execute native SQL query (createNativeQuery)

How can mapped result from SQL native query to MyClass without @Entity ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一杆小烟枪 2024-11-23 17:09:14

如果 bean 字段名称与数据库表的列名称相同,则可以使用 Spring JDBC 的 org.springframework.jdbc.core.BeanPropertyRowMapper

您使用 BeanPropertyRowMapper 对象调用 org.springframework.jdbc.core.simple.SimpleJdbcOperations.queryForObject(String, RowMapper, Object...)) ,它会为您调用所有设置器,使用反射。

If the bean field names are the same as the DB table's column names, you can use Spring JDBC's org.springframework.jdbc.core.BeanPropertyRowMapper<T>.

You call org.springframework.jdbc.core.simple.SimpleJdbcOperations.queryForObject(String, RowMapper<T>, Object...)) with the BeanPropertyRowMapper object and it calls all the setters for you, using reflection.

一个人的旅程 2024-11-23 17:09:14

如果是 JPA,我会使用:
查询 query = getEntityManager().createNativeQuery(sql.toString(), MyClass.class);

如果 MyClass 是 EntityBean,它就可以工作:-(

If its JPA, I'd used:
Query query = getEntityManager().createNativeQuery(sql.toString(), MyClass.class);

It works if MyClass is an EntityBean :-(

汐鸠 2024-11-23 17:09:14

您可以简单地发出查询并调用 POJO 类中的 getter/setter。
伪代码:

get connection
ResultSet rs = execute query
if (rs.next()) {
  setField1(rs.getString("field1"));
  etc....
}

You can simply issue a query and call the getters/setters in your POJO class.
Pseudo-code:

get connection
ResultSet rs = execute query
if (rs.next()) {
  setField1(rs.getString("field1"));
  etc....
}
椵侞 2024-11-23 17:09:14

您可以使用 EclipseLink 查询重定向器。下面的链接对此进行了解释。作者还提供了非常通用且运行良好的代码。

http://onpersistence.blogspot.in/2010/07/eclipselink -jpa-native-constructor.html

You can use EclipseLink query redirector. The following link explains it. The author has also provided code which is pretty generic and works quite well.

http://onpersistence.blogspot.in/2010/07/eclipselink-jpa-native-constructor.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文