本帖最后由 yxl2005play 于 2010-06-13 16:22:48 编辑

解决方案 »

  1.   

    是主键,用=的话也只能是等于一个值而已,我现在是想实现,fd_id in (多个值)。
    2010-06-13 15:59:22 StandardWrapperValve[struts]: Servlet.service() for servlet struts threw exception
    java.lang.ClassCastException: [Ljava.lang.Integer;
    at org.hibernate.type.IntegerType.set(IntegerType.java:64)
    at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:154)
    at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136)
    at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:61)
    at org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:514)
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1589)
    at org.hibernate.loader.Loader.doQuery(Loader.java:696)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
    at org.hibernate.loader.Loader.doList(Loader.java:2228)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
    at org.hibernate.loader.Loader.list(Loader.java:2120)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:361)
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1148)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
    at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:67)
      

  2.   

    在写jql语句时遇到一个问题:
    Integer[] id=new Integer{1,2,3,4,5};
    Query getRowsQuery = em.createQuery("select o from UserModel o where o.fd_id =:fd_id");
    getRowsQuery.setParameter("fd_id",id);这样写.
      

  3.   

    List<Integer> ids = new ArrayList<Integer>();
    ids.add(1);
    ids.add(2);
    Map<String, Object> params = new HashMap<String, Object>();
    params.put("ids", ids);
    String jpql = "select o from oa_usersroles o where o.role.id in(:ids)";
    List<Module> modules = em.createQuery(jpql).setParameter("ids", ids).getResultList();测试通过了,可以这样做。上面例子你看看。