Hibernate 、多表关联映射-组件关联映射(component)
组件关联映射可以将一些简小的数据与主题放在一个表中,例如firstName 和LastName这两个结合在一起可以组成一个名字,但是再分别将这两个再建一个表就不太合适了,这个时候可以用到组件关联映射;
hibernate.cfg.xml:
<hibernate-configuration>
<session-factory name="sessionFactory">
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=UTF-8</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping resource="cn/hbm/Person2.hbm.xml" />
</session-factory>
</hibernate-configuration>
Person:
public class Person2 {
private Integer id;
private Name name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
}
name:
public class Name {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
hbm.xml
<hibernate-mapping package="cn.model">
<class name="Person2" table="PERSON2">
<id name="id" column="ID">
<generator class="native"></generator>
</id>
<component name="name">
<property name="firstName" column="FIRST_NAME" />
<property name="lastName" column="LAST_NAME" />
</component>
</class>
</hibernate-mapping>
public void saveZujian(){
Session session=null;
Transaction tran=null;
try{
Person2 person=new Person2();
Name name=new Name();
name.setFirstName("jack");
name.setLastName("tomson");
person.setName(name);
session=HibernateSessionFactory.getSession();
tran=session.beginTransaction();
session.save(person);
tran.commit();
}catch(Exception e){
if(session!=null){
session.close();
}
}
}
执行保存以后可看到生成的SQL
确实创建在一张表中了。
执行查询:
public Person2 getPersonById(Integer id){
Session session=null;
try{
session=HibernateSessionFactory.getSession();
return (Person2)session.get(Person2.class, id);
}catch(Exception e){
if(session!=null){
session.close();
}
}
return null;
}
Hibernate 、多表关联映射-组件关联映射(component)的更多相关文章
- Hibernate中的一对一关联和组件的映射
Hibernate提供了两种映射一对一映射关联关系的方式: 01.按照外键映射 02.按照主键映射 下面以员工账号表和员工档案表(员工账号和档案表之间是一对一的关系)为例,介绍这两种映射关系,并使用这 ...
- Hibernate中一对一关联映射/组件映射
Hibernate映射:一对一关联 1.按照外键映射 2.按照主键映射 组件映射 下面以员工账号表和员工档案表(员工账号和档案表之间是一对一的关系)为例,介绍这两种映射关系,并使用这两种 映射方式分别 ...
- 【学习笔记】Hibernate 一对一关联映射 组件映射 二级缓存 集合缓存
啊讲道理放假这十天不到啊 感觉生活中充满了绝望 这就又开学了 好吧好吧继续学习笔记?还是什么的 一对一关联映射 这次我们仍然准备了两个表 一个是用户表Users 一个是档案表Resume 他们的关系是 ...
- Hibernate中映射一对一关联(按主键映射和外键映射)和组件映射
Hibernate中映射一对一关联(按主键映射和外键映射)和组件映射 Hibernate提供了两 ...
- Hibernate学习笔记(四)关系映射之一对一关联映射
一. 一对一关联映射 ² 两个对象之间是一对一的关系,如Person-IdCard(人—身份证号) ² 有两种策略可以实现一对一的关联映射 Ø 主键关联:即让 ...
- Hibernate之映射一对一关联
一.一对一关联的概念: 一对一之间的关联是指:两张表中的信息是一对一的关系,比如我们每个人和身份证的关系,一个人对应一张身份证,一张身份证也只能对应一个人. Hibernate提供了两种映射一对一关联 ...
- Hibernate(六)一对一双向关联映射
在上次的博文Hibernate从入门到精通(五)一对一单向关联映射中我们讲解了一下一对一单向关联映射, 这次我们继续讲解一下与之对应的一对一双向关联映射. 一对一双向关联 与一对一单向关联映 射所不同 ...
- Hibernate(五)一对一单向关联映射
上次的博文中 Hibernate从入门到精通(四)基本映射我们已经讲解了一下基本映射和相关概念,接下来 我们会讲稍微复杂点的映射——关系映射. 关系映射分类 关系映射即在基本映射的基础上处理 多个相关 ...
- 【Hibernate步步】--一对一映射双向关联具体解释(两)
很抱歉.有两天没更新博客文章,不要写文章一天真的感觉很是空的啊.制定一个写作习惯,想改也改不掉啊.说点题外话,前两天我收到一封私人信件给朋友,我写邀请函的文章OWS文章.一种技术用于研究图标工具,这位 ...
随机推荐
- 如何自定义MVC控件?
今天公司要写学习总结,想着想着还是先写一篇关于MVC内部什么东东的博客整理整理再发表吧,一举两得. 之前写过了路由.过滤器等.今天就研究一下怎么自定义MVC控件吧. 本人技术小菜,不喜勿喷.....( ...
- 李维作答 《insideVCL》——李维实在很勤奋,而且勇于突破,从不以旧的内容充数
(编者按)<Inside VCL(VCL核心架构剖析)>一书出版以来,众多热心读者给李维先生.博文视点公司.CSDN写来信件,有更多朋友在各个论坛上发表关于该书的言论.读者们不但盛赞该书, ...
- Silverlight中的拖拽实现的图片上传
原文 http://blog.csdn.net/dujingjing1230/article/details/5443003 在Silverlight中因为可以直接从系统的文件夹里面拖出来一个文件直接 ...
- 使用LINQ查询非泛型类型
原文地址:http://www.cnblogs.com/buzz/archive/2009/04/23/1442159.html using System;using System.Collectio ...
- 数据指令MOV
MOV分成三类,第一类不需要拓展(MOV),第二类做符号拓展(MOVS),第三类做零拓展(MOVZ),拓展类型根据源操作数决定. 这三类根据操作的数据类型其后可加l,w,b. MOV操作的操作数可以是 ...
- 【HDU 4452 Running Rabbits】简单模拟
两只兔子Tom和Jerry在一个n*n的格子区域跑,分别起始于(1,1)和(n,n),有各自的速度speed(格/小时).初始方向dir(E.N.W.S)和左转周期turn(小时/次). 各自每小时往 ...
- 高龄“潮男”优衣库老板柳井正_榜样_奢华主义_YOKA时尚网
高龄"潮男"优衣库老板柳井正_榜样_奢华主义_YOKA时尚网 高龄"潮男"优衣库老板柳井正
- vs2010中看不见类视图和资源视图的解决方法
vs2010工程中,因为删除了“vcxproj.filter”文件,所以导致资源视图看不见了. 解决方法是:先关掉工程,将工程对应的扩展名为.suo和.sdf删除,重新打开解决方案,问题解决.
- 专题开发十三:JEECG微云高速开发平台-附录
专题开发十三:JEECG微云高速开发平台-附录 12.1UI库经常使用控件參考演示样例 序号 控件 解决方式 參考演示样例 1 datagrid数据列表.字段採用数据字典显示文本 <t:dgCo ...
- Android UI 使用HTML布局(直接打开server网页)
非常多时候我们用HTML布局会更方便直接,记录一下. 我如今主要是直接调用server的网页(实际上是jsp的,仅仅是返回的是html).所以须要联网,第一步加入权限. <uses-permis ...