【发布时间】:2012-07-15 04:51:42
【问题描述】:
我需要通过在 Hibernate 中执行本机查询来获取结果集。虽然我使用的是 EntityManager,但查询和结果集可能不是实体。
需要获取List的ResultSet。由于选择输出可能会有所不同(读取动态),因此我无法使用 SqlResultSetMapping。
当我尝试下面的代码时,我得到了结果。因为我要求的是单值结果。 (休眠 JPA)
Query query = manager.createNativeQuery("select name from fresher_test where id=1");
List<Object> amount = query.getResultList();
if(amount == null)
{
System.out.println("Hey its a null");
return;
}
for(Object e : arr)
{
System.out.println(e.toString());
}
输出是:爱丽丝
当我尝试使用 Query 作为 select name,designation from fresher_test where id=1
从同一代码中获取多个选择时输出是:[Ljava.lang.Object;@8b1a4f
一个对象。如何从该对象中获取字段?我试图将对象 e (List l = (List) e;) 类型转换为 List,但我抛出 java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List。
这有一种方法可以获取列表或数组中的值??
注意:我不能使用结果类/实体,因为结果可能是动态的。
【问题讨论】:
-
列表