以前没有遇到过,因为以前没有用spring。
下面service层代码:
java 代码
- public boolean updateOrderBill(Long id) {
- OrderBill ob = this.getOrderBillDao().getOrderBill(id);
- ob.setName(ob.Name()+"1");
- getOrderBillDao().saveOrderBill(ob);
- return true;
- }
junit测试代码:
java 代码
- @Test
- public void testReservFailed(){
- orderBillService.updateOrderBill(Long.valueOf(12530));
- OrderBill ob = orderBillService.getOrderBill(Long.valueOf(12530));
- System.out.println(ob.getName());
- }
执行时:根本没有保存进行,并且也没有在控制台看到:update语句
service代码改写成:
java 代码
- public boolean updateOrderBill(Long id) {
- OrderBill ob = this.getOrderBillDao().getOrderBill(id);
- ob.setHotelName(ob.getName()+"1");
- getOrderBillDao().excuteUpdate("update OrderBill as obj set obj.name='"+ob.getName()+"1"+"' where obj.orderBillId="+id);
- return false;
- }
就更新成功了。
很奇怪,难道不去判断对象被弄脏了吗?
注意用的版本是:hibernate 3.2.5ga ,spring2.0.6