日期:2014-05-16 浏览次数:20399 次
? 在项目中数据库中账单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方法不会执行,(这种通过反射强制赋值的手段可能在某些情况很使用) 难道真是这样吗?希望牛人指点,不要拍砖,更希望各位朋友交流心得。