组件关联映射可以将一些简小的数据与主题放在一个表中,例如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)相关推荐

  1. Hibernate多表关联查询记录映射

    通常情况下,单表的查询比较简单,在hibernate中可以将查询记录直接映射到具体的实体类,因为通常会通过JPA注解将数据表和实体类建立映射关系,在查询数据,保存数据时,可以直接操作java实体类,但 ...

  2. hibernate mysql 关联查询_Hibernate关联映射及高级查询

    一.Hibernate中的关联关系 1.1.单向一对多关联关系 按照以下步骤配置hibernate中持久化类的一对多对象关联: (1).持久化类添加关联类的相关属性及getter/setter方法. ...

  3. Hibernate一对多单向关联和双向关联映射方法及其优缺点

    一对多关联映射和多对一关联映射实现的基本原理都是一样的,既是在多的一端加入一个外键指向一的一端外键,而主要的区别就是维护端不同. 它们的区别在于维护的关系不同: 一对多关联映射是指在加载一的一端数据的 ...

  4. Mybatis-plus:单表使用关联查询+ResultMap结果映射

    Mybatis-plus:单表使用关联查询+ResultMap结果映射 一:数据表与实体类 二:mapper与mapper.xml 三:service 四:控制器 五:返回结果 一:数据表与实体类 数 ...

  5. Hibernate 多表关联

    hibernate中可以一次对多个表进行数据插入,这种插入类似 Hibernate的关联映射关系有: 多对一 ---- many-to-one 一对多 ---- one-to-many 一对一 --- ...

  6. Hibernate第九篇【组件映射、继承映射】

    前言 到目前位置,我们已经学习了一对一.一对多.多对一.多对多映射了-既然Hibernate是ORM实现的框架,它还提供了组件映射和继承映射..本博文主要讲解组件映射和继承映射 Java主要的类主要有 ...

  7. Hibernate一对一关联------主键关联(亲测成功)

    1.创建两个实体(Company.java和Login.java)代码如下: 1 package wck.stu.vo.onetoonein; 2 3 public class Company { 4 ...

  8. hibernate注释映射_Hibernate一对一映射示例注释

    hibernate注释映射 Today we will look into One to One Mapping in Hibernate. We will look into Hibernate O ...

  9. hibernate one2one 唯一外键关联(双向关联)

    hibernate的一对一唯一外键关联映射(双向关联 Person <------->IdCard) 一对一唯一外键关联采用<one - to -one>标签映射,必须指定标签 ...

最新文章

  1. 平均年薪35W,2018年大数据AI发展趋势分析
  2. Python读取文件编码及内容
  3. pythonurllib模块-urllib库详解 --Python3
  4. Nginx uWsgi Django环境搭建
  5. selenium python 安装
  6. JDK 6中新增的Java Console类功能概览
  7. ntce服务器不稳定,当心!你的教师资格证成绩失效了!| 服务
  8. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](五)
  9. Composer基础应用1
  10. 芯烨 XP-350b 打印机驱动
  11. hbase的协处理器
  12. OpenCV 安装配置 Jupyter Notebook
  13. 每个系统都在用的appid、appkey、appsecret都是什么意思?
  14. 清华大学计算机科学学院刘钊,姚 骏-清华大学生命学院
  15. Pandas学习——分组
  16. Springboot - 处理LocalDateTime的入参和出参格式
  17. 践行支付为民 线上支付开通ETC线上申卡、支付
  18. 基于opencv的 SNR,GAMMA,色差,饱和度,曝光误差,白平衡误差的自动化算法开发
  19. php图片处理案例,使用GD、ImageGick与PHP框架的图片处理技术
  20. MES管理系统中的批次管理,贯穿了生产制造的整个流程

热门文章

  1. mysql双主同步一个库,CNESA
  2. 【完结】总结12大CNN主流模型架构设计思想
  3. 外贸想做好开发客户和地推?就一定要用这个软件!
  4. TEXT和_T,_TEXT
  5. 中欧谋定原产地保护-农业大健康·万祥军:战略格局地理标志
  6. css的基本操作学习--css样式,选择器,hover,文字属性,文本属性,背景
  7. 两台centos之间传送文件
  8. C#.net删除dataGridView中选中行并同时更新数据库
  9. 给公司员工上的培训1——微观规范
  10. 产品设计中的点线面法则