java - 将 JDBC ResultSet 迁移到 JPA List 对象

标签 java jpa jdbc

你好,我需要将我的 DAO 类从 JDBC 迁移到 JPA,但我需要的是不需要更改 rs.getInt("NAME_COLUMN")rs.getString( “NAME_COLUMN”)

其余代码 PreparedStatement/while(rs.next()){....} 很容易迁移...我只需要结果集变量...

JDBC 代码

PreparedStatement ps = connection.prepareStatement("SELECT f1, f2 FROM table");
ResultSet rs = ps.executeQuery();
while (rs.next()) {

    System.out.println(rs.getInt("f1"));
    System.out.println(rs.getString("f2"));
    // More than 800 of this... 
}

JPA 代码

EntityManager em = PersistenceUtil.getEntityManager();

Query q = em.createNativeQuery("SELECT f1, f2 FROM table");
List<Object[]> results = q.getResultList();

for (Object[] rs : results) {
     System.out.println(rs[0]); // need to be rs.getInt("f1")
     System.out.println(rs[1]); // need to be rs.getString("f2")
}          

我的项目中有很多 ResultSet 超过 800

我需要一个方法/类/东西来只迁移结果集变量(里面的for),如果我写在rs[0]我会花很多工作来重写JPA 中的所有结果。

最佳答案

答案在这里

    EntityManager em = PersistenceUtil.getEntityManager();

    Query q  = em.createNativeQuery("SELECT f1, f2 FROM table");
    q.setHint(QueryHints.RESULT_TYPE, ResultType.Map);
    List<Map> lm = q.getResultList();

        for (Map rs : lm) {

            System.out.println(rs.get("f1")); // add some function convert to Int
            System.out.println(rs.get("f2")); // add some function convert to string


        }

有人知道转换字符串和 Int 的函数吗?

比如:getInt 或 getString?

关于java - 将 JDBC ResultSet 迁移到 JPA List 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42160324/

相关文章:

java - 构建同步映射,阻塞各个键

java - 如何在 JPA 中定义多态性

java - jOOQ 中是否有相当于 pluck() 的函数?

java - 验证用户名和加盐密码

java - 在插入数据库之前尝试将 Arraylist<LatLng> 转换为字符串

java - 使用 JUnit 测试 void 方法

java - 没有找到适合 dbc :mysql://localhost:8080/kholofedb 的驱动程序

java - Java 中的泛型参数类型和返回类型

java - Jpa @Transactional 不回滚

jpa - Spring 数据 JPA 获取