java.sql.SQLException:ORA-00932:不一致的数据类型:预期NUMB
发布时间:2020-12-15 02:03:20 所属栏目:Java 来源:网络整理
导读:我在Dao类中有一个返回List Object []的方法.回来了,我正在使用命名查询 public ListObject[] getListByCustomer(Session session,int customerId,ListInteger strIds) { Query namedQuery = session.createSQLQuery(QueryConstants.EXPORT); namedQuery.set
我在Dao类中有一个返回List< Object []>的方法.回来了,我正在使用命名查询
public List<Object[]> getListByCustomer(Session session,int customerId,List<Integer> strIds) { Query namedQuery = session.createSQLQuery(QueryConstants.EXPORT); namedQuery.setParameter("customer",customerId); namedQuery.setParameter("stringId",strIds); List<Object[]> objects = namedQuery.list(); return objects; } 我想传递List< Integer>将stringId中的strId放入命名查询中,如下所示: public class QueryConstants { public static final String EXPORT = "SELECT sv.NAME,sv.TYPE,sv.CLIENT_ADDRESS,sv.NAME_REDUNDANT,sv.DEPARTURE_DATE,s1.CODE,sv.STATE,sv.CODE " + "FROM VIEW sv,PROCESS p1,SET s1 " + "WHERE sv.R_ID = p1.R_ID and p1.ISSUER_ID = s1.USER_ID and sv.CUSTOMER_ID = :customer and sv.R_ID IN (:stringId)"; } 但我得到ORA-00932:数据类型不一致:预期NUMBER得到了BINARY. 此外,当我从查询中删除sv.R_ID IN(:stringId)时,它工作正常 我正在使用Oracle 10g. 解决方法
我想你只需要使用
IN :stringId 代替 IN (:stringId) 对于JPA namedQuery.setParameter("stringId",strIds); 是正确的,但对于Hibernate你应该使用 namedQuery.setParameterList("stringId",strIds); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |