数据库有三个表:book(id,name,price,date),order(id,name,status,code,orderDate),orderDetail(id,orderId,bookId)
我在增加order时,无法级联增加orderDetail表中该order的信息
也就是order做添加时order表会增加相关的信息,但orderDetail表就没有book.hbm.xml:代码<hibernate-mapping package="com.hibernate.entity">
<class name="Book" table="book">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>

<property name="name"/>
<property name="price"/>
<property name="date"/>

<bag name="orderList" table="orderDetail">
<key column="bookId"/>
<many-to-many column="orderId" class="Order"/>
</bag>

</class>
</hibernate-mapping>order.hbm.xml代码<hibernate-mapping package="com.hibernate.entity">
<class name="Order" table="orders">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>

<property name="name"/>
<property name="code"/>
<property name="status"/>
<property name="orderDate"/>

<bag name="bookList" table="orderDetail" inverse="true">
<key column="orderId" />
<many-to-many column="bookId" class="Book" />
</bag>

</class>
</hibernate-mapping>

解决方案 »

  1.   

    加了cascade="all"也是一样,还不能关联
      

  2.   

    order和orderDetail两个对象有没有互相包含对方,就是order.setDetail(Order),orderDetail.setOrder(Detail)
      

  3.   

    <set name="children" table="documentcatalog" cascade="all-delete-orphan" inverse="true" lazy="true" order-by="order_ asc">
    <key column="parentId_"></key>
    <one-to-many class="com.langsin.bean.DocumentCatalog"/>
    </set>
    参照试试
      

  4.   

    试一下用hibernate注解地方法吧
      

  5.   

    hibernate的annutation注解和写xml都一样,最终都转换的,首先是没有cascade属性,如果还不能解决那就是其他地方的细节忽略了