论坛首页 Java企业应用论坛

Hibernate使用中从数据库到模型的加载方式研究

浏览 2183 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-28  

  在项目中数据库中账单Bill一个字段是有多个订单id的以逗号分隔的字符串,DAO采用HQL查询出来之后,获取订单的id集合,本人开始认为hibernate从数据库加载到模型中,会调用setXXX()方法,在setXXX中进行相应的,字符串分隔,但是我的想法错误,使用Struts2.0 在页面OGNL获取获取不到分隔后订单id集合数据。本人甚为郁闷。甚至在debug模式下在setXXX打了断点,调试,果然不执行。没有方法,在Bill中添加一个方法,每次调用此方法获取集合,居然可以获取数据。本人不解。

 

 在网上查看一下文档。

      网上有人说:

          Hibernate 既可以访问Field也可以访问Property,访问Property是只是调用getXXX()、setXXX()方法,因此在from Customer where c.name=’Tom’ HQL中,name属性不需要存在,只要getName()存在就可以了。

本人多次实践发现:

        hibernate从数据库加载数据到Model时不调用相应setXXX方法,仅仅调用相应的属性.难道在Model中private属性,使用反射强制访问了吗,也只有这种情况下,相应的setXXX方法不会执行,(这种通过反射强制赋值的手段可能在某些情况很使用) 难道真是这样吗?希望牛人指点,不要拍砖,更希望各位朋友交流心得。

   发表时间:2010-12-15  
好像是这样:
注解标记在 field上就访问field
标记在 property上就访问 property
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics