浏览 3523 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2003-12-05
在SaleBillPO中有一个SaleItemPO的List.同时在SaleItemPO中有一 个表示该销售项所属的销售单(saleBill) 目前的配置情况如下: 在SaleBill.hbm.xml中如下配置 <list name="saleItem" lazy="true" inverse="true" cascade="all" > <key column="saleID" /> <index column="itemOrder" /> <one-to-many class="com.lenovo.shanzb.SHDemo.model.bean.SaleItemPO"/> </list> 同时在SaleItem.hbm.xml中配置的情况如下: <many-to-one name="saleBill" column="saleID" class="com.lenovo.shanzb.SHDemo.model.bean.SaleBillPO" cascade="none" update="false" insert="true" /> 但是在操作的时候我新增加了一张销售单,同时为该销售单创建了几个销售项 然后调用一个销售单的DAO保存该销售单,在Mysql数据库中销售单的结果保存 了,但是销售项却没有保存任何信息.调用的代码如下: DAOFactory df = DAOFactory.getInstance(); ; SaleBillDAO saleBillDAO = df.getSaleBillDAO();; SaleItemPO saleItem = new SaleItemPO();; saleItem.setItemID("SI00004");; saleItem.setAcount(new Integer(100););; //saleItem.setSaleID("SB00002");; SaleBillPO saleBill = new SaleBillPO();; saleBill.setSaleID("SB00003");; saleBill.setSaleDesc("我的第三个销售单");; saleBill.setSaleName("我的销售单");; saleItem.setSaleBill(saleBill);; saleBill.addSaleItem(saleItem);; try { saleBillDAO.addSaleBill(saleBill);; } catch ( HibernateException ex ); { ex.printStackTrace(System.out); ; } } 但是值得说明一下的是,我在保存SaleItem的时候,如果检查到销售单没有 新建则会自动插入销售单的数据. 不知道以上代码有什么问题,请各位大侠帮帮忙看看. 多谢多谢 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2003-12-05
映射有严重问题,list是不能简单地设为inverse="true"的,这样谁来负责维护<index column="itemOrder" />,必须在SaleItemPO中为column itemOrder映射一个属性,且程序必须这样
saleItem.setSaleBill(saleBill);; saleBill.addSaleItem(saleItem);; //设置saleItem在saleBill.saleItems中的index saleItem.setItemOrder(saleBill.getSaleItems();.getSize();-1);; 引用 我在保存SaleItem的时候,如果检查到销售单没有 新建则会自动插入销售单的数据. 你如何判断的? |
|
返回顶楼 |