为了账号安全,请及时绑定邮箱和手机立即绑定

对find方法的疑惑

对于find方法 为什么老师的直接是Find(String,String,String),而我的必须要Find(String,object)呢。框架版本的问题吗?

正在回答

2 回答

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();
            }
        });
    }


0 回复 有任何疑惑可以回复我~

不懂,不过我可以给你另外一种find(String queryString,Object[] values)的方式,变成

this.getHibernateTemplate().find(hql,new String[]{employee.getUsername(),employee.getPassword()});

效果和this.getHibernateTemplate().find(hql, employee.getUsername(),employee.getPassword());是一样的。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

对find方法的疑惑

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信