2011-02-10 111 views
2

我在做這樣的事情HQL鑄造錯誤

String SQL="From Auction auc where auc.AuctionId IN (:ids)"; 
      String BSQL="Select bid.auction.AuctionId From Bid bid where bid.User.UserId="+UserId; 
      List <Long> UserBids=new LinkedList <Long>(session.createQuery(BSQL).list()); 
      System.out.println(UserBids.size()); 

      Query query = session.createQuery(SQL); 
      query.setParameterList("ids", UserBids); 


      List <Bid> AllBids=session.createQuery(SQL).setParameter("ids",query.list()).list(); 

,並得到一個鑄造錯誤:

Caused by: java.lang.ClassCastException: java.util.LinkedList cannot be cast to java.lang.Long 
    at org.hibernate.type.descriptor.java.LongTypeDescriptor.unwrap(LongTypeDescriptor.java:36) 
    at org.hibernate.type.descriptor.sql.BigIntTypeDescriptor$1.doBind(BigIntTypeDescriptor.java:52) 
    at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:89) 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:282) 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:277) 
    at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:67) 
    at org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:571) 
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1716) 
    at org.hibernate.loader.Loader.doQuery(Loader.java:801) 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274) 
    at org.hibernate.loader.Loader.doList(Loader.java:2533) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276) 
    at org.hibernate.loader.Loader.list(Loader.java:2271) 
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452) 
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) 
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) 
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268) 
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) 
    at com.BiddingSystem.server.ServiceImpl.getBid(ServiceImpl.java:1471) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at net.sf.gilead.gwt.PersistentRemoteService.processCall(PersistentRemoteService.java:174) 
    ... 21 more 

回答