休眠选择查询

时间:2018-10-11 07:25:21

标签: java hibernate jpa

我正在使用以下查询从2个表中获取详细信息,然后将结果存储在列表中

Query selectEntry = em.createQuery("select b.affStyle,b.actualAffService " +
    "from SdHeaders a, SdAffectedServices b " +
    "where a.id = b.id AND a.sdClass = 'NET' AND b.actualAffService IS NOT NULL " +
    "AND b.itemType = :itemType " +
    "group by b.affStyle, b.actualAffService");                     

selectEntry.setParameter("itemType",ob.getItemType());
result=selectEntry.getResultList();

执行此操作时,出现以下错误,并且列表中也应填充2个值,但不是。

Subquery result[[Ljava.lang.Object;@2b4a90f0]
Result string[[Ljava.lang.Object;@2b4a90f0]
[Ljava.lang.Object;@2b4a90f0
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    at java.util.ArrayList.rangeCheck(ArrayList.java:657)
    at java.util.ArrayList.get(ArrayList.java:433)

当我在SQL Developer中运行查询时,它会给我正确的结果。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

selectEntry.setParameter("itemType",ob.getItemType());

这可能是原因。数据库中的ob.getItemType()数据类型和itemType数据类型不匹配。您可以更正并重试吗?