Hibernate JPA Native Query ResultSet

Gee*_*eez 2 hibernate jpa

我需要通过在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.你不应该检查.