Order.hbm.xml文件:
Item.hbm.xml文件:
Order包含purchaseItems,purchaseItems是一个SET集合,里面是ITEM,我想显示Order的时候,用以下语句:
String sql = "from Order";
this.getHibernateTemplate().find(sql).size();
但后台会执行下面语句:
Hibernate: select order0_.order_id as order1_2_, order0_.orderName as orderName2_, order0_.orderState as orderState2_, order0_.user_id as user4_2_ from orders order0_
Hibernate: select purchaseit0_.order_id as order1_0_, purchaseit0_.quantity as quantity0_, purchaseit0_.item_id as item3_0_ from order_item purchaseit0_ where purchaseit0_.order_id=?
Hibernate: select item0_.item_id as item1_4_0_, item0_.itemName as itemName4_0_ from item item0_ where item0_.item_id=?
Hibernate: select item0_.item_id as item1_4_0_, item0_.itemName as itemName4_0_ from item item0_ where item0_.item_id=?
Hibernate: delete from order_item where order_id=? and quantity=? and item_id=?
Hibernate: insert into order_item (order_id, quantity, item_id) values (?, ?, ?)
Hibernate: insert into order_item (order_id, quantity, item_id) values (?, ?, ?)
这还是在orders表中只有一条记录,对应order_item表中两条记录的情况,如果记录数多了,那全严重影响效率的,我搞不明白,为什么用来配置关联关系后,执行查询会出现先删除后插入的命令,把配置去了,便一切正常,大家以前遇到过这种情况吗?