public abstract interface HibernateCallback
{
public abstract Object doInHibernate(Session paramSession)
throws HibernateException, SQLException;
} public List find(String queryString, Object[] values) throws DataAccessException {
/* 742 */ return ((List)execute(new HibernateCallback(queryString, values) { private final String val$queryString;
/* */ private final Object[] val$values;
/* */
/* */ public Object doInHibernate(Session session) throws HibernateException { Query queryObject = session.createQuery(this.val$queryString);
/* 745 */ HibernateTemplate.this.prepareQuery(queryObject);
/* 746 */ if (this.val$values != null) {
/* 747 */ for (int i = 0; i < this.val$values.length; ++i) {
/* 748 */ queryObject.setParameter(i, this.val$values[i]);
/* */ }
/* */ }
/* 751 */ return queryObject.list();
/* */ }
/* */ }
/* */ , true));
/* */ }
val$values ,val$queryString 什么意思?。为什么不用queryString,values 来直接接受参数
{
public abstract Object doInHibernate(Session paramSession)
throws HibernateException, SQLException;
} public List find(String queryString, Object[] values) throws DataAccessException {
/* 742 */ return ((List)execute(new HibernateCallback(queryString, values) { private final String val$queryString;
/* */ private final Object[] val$values;
/* */
/* */ public Object doInHibernate(Session session) throws HibernateException { Query queryObject = session.createQuery(this.val$queryString);
/* 745 */ HibernateTemplate.this.prepareQuery(queryObject);
/* 746 */ if (this.val$values != null) {
/* 747 */ for (int i = 0; i < this.val$values.length; ++i) {
/* 748 */ queryObject.setParameter(i, this.val$values[i]);
/* */ }
/* */ }
/* 751 */ return queryObject.list();
/* */ }
/* */ }
/* */ , true));
/* */ }
val$values ,val$queryString 什么意思?。为什么不用queryString,values 来直接接受参数
HibernateTemplate.this.prepareQuery
this什么意思啊。
我觉得这里是因为使用了内部类,而内部类只能访问final修饰的变量,
因此在这里将queryString,values先赋给final的变量val$values ,val$queryString
再在方法中接收参数
{
public abstract Object doInHibernate(Session paramSession)
throws HibernateException, SQLException;
}
有这种写法吗,抽象接口!