public List<Object[]> findUser() { final String HQL = "select u.userId,u.userName ,u.userPassword from User u";
return (List<Object[]>) getJpaTemplate().execute(new JpaCallback() { public Object doInJpa(EntityManager em) throws PersistenceException { Query query = em.createQuery(HQL);
List<Object[]> list = query.getResultList();
return list; }
});
谁能给我讲讲这段代码的逻辑呢。。 大神们。求指教啊
findUser()里面为什么又写了两个方法呢?

解决方案 »

  1.   

    不是写了两个方法,只是定义了一个内部匿名类,execute(new JpaCallback(....)这个匿名的类要实现他的doInJpa()方法。
      

  2.   

    我给你舔段差不多的代码 public Integer bulkUpdate(final PK[] ids,String propertyName,final Object propertyValue){
       final String sqlString = "update "+getEntityName(this.persistentClass)+
        " set "+ propertyName +"  = :value "+
       " where id in (:ids) ";
           Integer count=hibernateTemplate.execute(new HibernateCallback<Integer>() {
               public Integer doInHibernate(Session session) throws HibernateException, SQLException {
                   Query query = session.createQuery(sqlString);
                   query.setParameter("value", propertyValue);
                   query.setParameterList("ids", ids);
                   return query.executeUpdate();
               }
           });    return count;
       }