我遇到一个关于HibernateTemplate的问题,我发现必须这样使用它:
很明显第一个是getHibernateTemplate(),第二个的 ht对象是null所以不能用。也就是说必须通过getHibernateTemplate()方法才能使用HibernateTemplate ,不知道这是什么缘故?
HibernateTemplate本身就是通过HibernateDaoSupport的静态方法得到的,没有为什么把,spring就这样设计的。一般应该都是自己的DAO实现去继承HibernateDaoSupport,担心代码侵入就别用人家的支持类,自己写吧。
很明显第一个是getHibernateTemplate(),第二个的 ht对象是null所以不能用。也就是说必须通过getHibernateTemplate()方法才能使用HibernateTemplate ,不知道这是什么缘故?
HibernateTemplate本身就是通过HibernateDaoSupport的静态方法得到的,没有为什么把,spring就这样设计的。一般应该都是自己的DAO实现去继承HibernateDaoSupport,担心代码侵入就别用人家的支持类,自己写吧。
解决方案 »
- 要用javax.persistence需要怎么配置library
- 一个比较费解的编码问题!其实大家应该明白地,可能我太小白。
- javamail发送邮件的问题
- jsp乱码问题
- 如何判断传递过来的值是否为空?
- 如何判断文本框中是否为数字,并且是大于0小于100的数值
- 纯静态页面显示中文正常,把后缀名改成JSP执行中文为乱码,为什么啊??
- jsp到serlet传值的问题
- sql server 7.0 for sqlserver 的驱动到哪里有啊?请帮帮忙!
- javabean的开发标准
- struts 中文 火狐乱码 其他浏览器正常【在线等】
- HttpServletRequest的getInputStream方法和getParameter方法
要么是编程习惯不好,要么是JDK不支持范型
那你DAO层又何必去定义一个List<Object>呢,直接定义成List<User>不就好了。DAO就是要通用,你这样就不叫DAO了,建议你可以定义这样一个接口:
public <T> List<T> getListDatas(String hql, Object... args);
你说的这个接口,我没明白你的意思。
我想了想,要不还是把强制转换放到Service层吧,毕竟这也算是逻辑处理。
你上面的代码中,不用定义sessionFactory都不会出错,getHibernateTemplate()已经自动注入了sessionFactory,应该是实现机制的问题吧,具体你可以看看源码。
兄弟你没有正眼看我的回复啊。
兄弟你没有正眼看我的回复啊。
你没明白意思,不在类里面定义,配置文件里肯定要有,不然怎么注入。
兄弟你没有正眼看我的回复啊。
你没明白意思,不在类里面定义,配置文件里肯定要有,不然怎么注入。
不在类里面定义sessionFactory,则不能定义getHibernateTemplate()方法,没有这个方法,后面的.find()以及.save()方法从哪里来?
兄弟你没有正眼看我的回复啊。
你没明白意思,不在类里面定义,配置文件里肯定要有,不然怎么注入。
不在类里面定义sessionFactory,则不能定义getHibernateTemplate()方法,没有这个方法,后面的.find()以及.save()方法从哪里来?
继承HibernateDaoSupport啊,继承了就有getHibernateTemplate()
兄弟你没有正眼看我的回复啊。
你没明白意思,不在类里面定义,配置文件里肯定要有,不然怎么注入。
不在类里面定义sessionFactory,则不能定义getHibernateTemplate()方法,没有这个方法,后面的.find()以及.save()方法从哪里来?
继承HibernateDaoSupport啊,继承了就有getHibernateTemplate()
所以说你没有正眼看我的文字,我明明是在上面写了两种使用getHibernateTemplate()的方式,一种是不继承,一种是继承,要不然我还会多此一举在这里贴代码问哪种方式更好?
我看你就是个纯想捞分的,根本不认真看别人的问题,草草两句话就想浑水摸鱼捞点分,你还是别回我了,免得浪费大家的时间。我会在结贴的时候分你一部分点数的,毕竟你的行为还是属于帮助他人,没有功劳也有苦劳。
protected HibernateTemplate getHibernateTemplate(){}不就可以了吗?而且你的UserDao和别的Dao都存在了重复代码,注入SessionFactory 和 getHibernateTemplate至于你说的查询list类型转换的问题,hibernate已经提供解决了:
session.createQuery(hql).addEntity(); addEntity会转换类型的
2、使用hibernateTemplate,要么在配置文件中配置,并注入sessionfactory;要么直接new,并在getHibernateTemplate方法中用有sessionfactory参数的构造函数赋值。至于为什么,自己理解注入的概念。