首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Hibernate经过Composite-element配置外联表实例 (码)

2013-12-02 
Hibernate通过Composite-element配置外联表实例 (码)摘自圣思园Hibenrate 26. 组件映射深度解析 -37分钟文

Hibernate通过Composite-element配置外联表实例 (码)
摘自圣思园Hibenrate 26. 组件映射深度解析 -37分钟

文件: Student.java, Contact.java, Student.hbm.xml


Student.java

public class Student{private String id;private String name;private Set contacts=new HashSet();}



public class Contact{private String method;private String address;}


Student.hbm.xml
<hibernate-mapping package="component"><class name="Student" table="test_student"> <id name="id" column="id" type="string"> <generator column="name" type="string"/>   <set name="contacts" table="contact"> <key column="student_id"></key>  <!-- 这里配置了关联表Contact的元素 --> <composite-element type="string"/> <property name="address" type="string"/>  </composite-element>  </set>  </class></hibernate-mapping>

         
         
     

生成SQL:
Hibernate: create table contact (student_id varchar2(255 char) not null, method varchar2(255 char), address varchar2(255 char))
Hibernate: create table test_student (id varchar2(255 char) not null, name varchar2(255 char), primary key (id))
Hibernate: alter table contact add constraint FK_r3jhjlmx2uie72qpg7l3sedib foreign key (student_id) references test_student




插入
Session session=HibernateUtil.openSession();Contact c1=new Contact("phone","233333","1");Contact c2=new Contact("qq","233333","1");Student s=new Student("1", "li",ArraysHelper.asSet(c1,c2) );session.save(s);Transaction tx=session.beginTransaction();tx.commit();


结果:




热点排行