对于find方法 为什么老师的直接是Find(String,String,String),而我的必须要Find(String,object)呢。框架版本的问题吗?
Hibernate5 里面HibernateTemplateClass里的find源码 (选中find按F3即可看到) @Override public List<?> find(final String queryString, final Object... values) throws DataAccessException { return executeWithNativeSession(new HibernateCallback<List<?>>() { @Override @SuppressWarnings({"rawtypes", "deprecation"}) public List<?> doInHibernate(Session session) throws HibernateException { org.hibernate.Query queryObject = (org.hibernate.Query) ReflectionUtils.invokeMethod(createQueryMethod, session, queryString); prepareQuery(queryObject); if (values != null) { for (int i = 0; i < values.length; i++) { queryObject.setParameter(i, values[i]); } } return queryObject.list(); } }); }
不懂,不过我可以给你另外一种find(String queryString,Object[] values)的方式,变成
this.getHibernateTemplate().find(hql,new String[]{employee.getUsername(),employee.getPassword()});
效果和this.getHibernateTemplate().find(hql, employee.getUsername(),employee.getPassword());是一样的。