2012-04-04 20 views
0
I have a class called A which has set of object of B. On inserting the A all the objects in the set must be inserted. But in my case only the object A is inserting not the sets. 

クラスBには、場合によっては空のオブジェクトのコレクションも含まれています。 関係:hibernate insert one to many

<hibernate-mapping> 
     <class catalog="uml" name="com.project.lwuml.classdiagram.entity.Classbox" table="classbox"> 
     <id name="id" type="java.lang.Integer"> 
      <column name="id"/> 
      <generator class="identity"/> 
     </id> 
     <many-to-one class="com.project.lwuml.classdiagram.entity.Accessspecifiers" fetch="select" name="accessspecifiers"> 
      <column name="accessspecifiers_id" not-null="true"/> 
     </many-to-one> 
     <many-to-one class="com.project.lwuml.classdiagram.entity.Page" fetch="select" name="page"> 
      <column name="page_id" not-null="true"/> 
     </many-to-one> 
     <property name="className" type="string"> 
      <column length="128" name="className"/> 
     </property> 
     <set inverse="true" lazy="true" name="classmethods"> 
      <key> 
      <column name="classbox_id" not-null="true"/> 
      </key> 
      <one-to-many class="com.project.lwuml.classdiagram.entity.Classmethod"/> 
     </set> 
     <set inverse="true" name="classdatamembers"> 
      <key> 
      <column name="classbox_id" not-null="true"/> 
      </key> 
      <one-to-many class="com.project.lwuml.classdiagram.entity.Classdatamember"/> 
     </set> 
     </class> 
    </hibernate-mapping> 

ページ1 ----> *クラス Page.hbm.xml

<hibernate-mapping> 
     <class catalog="uml" name="com.project.lwuml.classdiagram.entity.Page" table="page"> 
     <id name="id" type="java.lang.Integer"> 
      <column name="id"/> 
      <generator class="identity"/> 
     </id> 
     <property name="content" type="string"> 
      <column length="65535" name="content"/> 
     </property> 
     <set inverse="true" name="classboxes" table="classbox" lazy="true" fetch="select"> 
      <key> 
      <column name="page_id" not-null="true"/> 
      </key> 
      <one-to-many class="com.project.lwuml.classdiagram.entity.Classbox"/> 
     </set> 
     </class> 
    </hibernate-mapping> 

Classboxes.hbm.xmlは私がストラットスプリング・休止状態を使用しています。どんな体が私を助けることができますか? ありがとうございます

+1

、XMLを残して、注釈に移動してください –

答えて

0

多対1のタグにカスケード属性を追加して、親が更新されたときに子が永続化されるようにする必要があると思います。

<many-to-one class="com.project.lwuml.classdiagram.entity.Page" fetch="select" cascade="save-update" name="page"> 
     <column name="page_id" not-null="true"/> 
    </many-to-one> 

http://pdngayan.blogspot.com/2010/02/cascade-attribute-in-hibernate-hbmxml.html

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/mapping.html#mapping-declaration-manytoone