0

how to use org.zkoss.spring.jpa.BasicDAO

asked 2011-05-26 05:21:42 +0800

aspireliao gravatar image aspireliao
33

Dear,
I use org.zkoss.spring.jpa.BasicDAO ,zk v5.05

My DAO is:

@SuppressWarnings("unchecked")
@Transactional(readOnly=true)
public List<Users> find(String queryString, Map<String,?> params) {
return this.basicDAO.find(queryString, params);
}

next is my controller code
<code>
UsersDAO dao =(UsersDAO) SpringUtil.getBean("usersDAO");
String queryString="select b FROM Users b where b.user_id =?1";
try{
final Map<String, Object> params = new HashMap<String, Object>();

params.put("1", user_id);

log.info("parms:"+params.size());
log.info("sql:"+queryString);

List<Users> user=dao.find(queryString, params);
log.info("i="+user.size());
}catch(Exception ex)
{
System.out.println(ex.toString());
ex.printStackTrace();
}


</code>

if running on Tomcat: and will show error:
java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String

next is stack:
at org.hibernate.type.StringType.toString(StringType.java:44)
at org.hibernate.type.NullableType.nullSafeToString(NullableType.java:93)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:140)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:116)
at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:38)
at org.hibernate.loader.hql.QueryLoader.bindParameterValues(QueryLoader.java:491)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1563)
at org.hibernate.loader.Loader.doQuery(Loader.java:673)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2213)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:65)
at org.zkoss.spring.jpa.BasicDAO.find(BasicDAO.java:75)
at etc.users.UsersDAO.find(UsersDAO.java:48)
at etc.users.UsersDAO$$FastClassByCGLIB$$86d3214a.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)

delete flag offensive retag edit
Be the first one to reply this discussion!
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2011-05-26 05:21:42 +0800

Seen: 447 times

Last updated: May 26 '11

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More