你好,我需要将我的 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/