Wenic的blog:
http://www.matrix.org.cn/blog/wenic705
这个是我做的用例。测试cascade和inverse.分析结果以及具体hibernate sql都在,比较容易看明白。
希望不是很明白的看看,加深印象。
小弟学识浅薄,如果有不对的地方,请指出来,谢谢!~
测试环境:Eclispe,用断点测试。
数据库是SQLServer2000.
Area.hbm.xml
| <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" " http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd";; ><hibernate-mapping> <class name="net.villion.model.test.Area" table="r_area"> <id column="ID" type="long" name = "id" length="10" unsaved-value="null"> <generator class = "native"/> </id> <property column="name" name="name" type="string"/> <many-to-one name="state" class="net.villion.model.test.State" cascade="all"> <column name="stateid" index="index_area_state"/> </many-to-one> </class> </hibernate-mapping> State.hbm.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" " http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd";; ><hibernate-mapping> <class name="net.villion.model.test.State" table="r_state"> <id column="ID" type="long" name = "id" length="10" unsaved-value="null"> <generator class = "native"/> </id> <property column="name" name="name" type="string"/> <set name="areas" lazy="true" cascade="all" inverse="false"> <key column="stateid"/> <one-to-many class="net.villion.model.test.Area"/> </set> </class> </hibernate-mapping> |
| //添加 //code StateDAO sdao =(StateDAO) ctx.getBean("stateDAO"); AreaDAO adao = (AreaDAO)ctx.getBean("areaDAO"); Area a3 = new Area(); a3.setName("NewYork"); Area a4 = new Area(); a4.setName("Frolida"); State s2 = new State(); s2.setName("America"); Set set = new HashSet(); set.add(a3); set.add(a4); s2.setAreas(set); sdao.saveObject(s2); //sql: Hibernate: insert into r_state (name) values (?) Hibernate: insert into r_area (name, stateid) values (?, ?) Hibernate: insert into r_area (name, stateid) values (?, ?) Hibernate: update r_area set stateid=? where ID=? Hibernate: update r_area set stateid=? where ID=? |
- 作者: neitbe 2005年03月25日, 星期五 15:11
你可以使用这个链接引用该篇日志 http://publishblog.blogdriver.com/blog/tb.b?diaryID=591909