我需要通过在Hibernate中执行本机查询来获取结果集.虽然我使用的是EntityManager,但查询和resultSet可能不是实体.
需要获取List的ResultSet.由于选择输出可能会有所不同(读取动态),因此无法使用SqlResultSetMapping.
当我尝试下面的代码时,我得到了一个结果.因为我要求的是单一价值的结果.(Hibernate 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());
}
Run Code Online (Sandbox Code Playgroud)
输出是:爱丽丝
当我尝试从同一代码中选择多个选择查询作为选择名称时,从fresher_test指定id = 1
输出是:[Ljava.lang.Object; @ 8b1a4f
一个东西.如何从此对象获取字段?我试图将对象e(List l =(List)e;)强制转换为List,但是我抛出了java.lang.ClassCastException:java.lang.String无法强制转换为java.util.List.
这有一种方法,我可以获取列表或数组中的值?
注意:我不能使用结果类/实体,因为结果可能是动态的.
JB *_*zet 15
获取多个列时,结果为a List<Object[]>
.每个Object[]
包含该行的一列.因此,在您的情况下,每个Object[]
元素将包含2个元素,第一个元素是名称,第二个元素是名称.
请注意,getResultList()
永远不会返回null.你不应该检查.
归档时间: |
|
查看次数: |
29906 次 |
最近记录: |