首页 > 其他分享 >Hibernate 一对一

Hibernate 一对一

时间:2023-04-26 15:32:00浏览次数:41  
标签:Hibernate tx Person 一对一 IdCard person session idCard


配置单向一对一关联

如表

Hibernate 一对一_实体类


 

第一步:实现Person表和IdCard表的实体类

第二步:

1、进行Person实体类 的配置,如下:

<classname="entity.Person">
            <idname="id">
                        <generatorclass="sequence">
                                    <paramname="sequence">seq_person</param>
                        </generator>
            </id>
            <propertyname="name" />
            <one-to-onename="idCard" class="entity.IdCard" />
</class>

2、进行IdCard实体类的配置,如下:

<classname="entity.IdCard">
            <idname="id">
                        <generatorclass="foreign">
                                    <paramname="property">person</param>
                        </generator>
            </id>
            <propertyname="no" />
            <one-to-onename="person" class="entity.Person" constrained="true" />
</class>

 

第三步:使用hibernate.cfg.xml映射其的路径

<mappingresource="entity/IdCard.hbm.xml" />
<mappingresource="entity/Person.hbm.xml" />

 

第四步:进行数据操作

Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
Person person = new Person("李炎恢");
IdCard idCard = new IdCard("123456");
try {
            person.setIdCard(idCard);
            idCard.setPerson(person);
            tx = session.beginTransaction();
            session.save(person);
            session.save(idCard);
            tx.commit();
            System.out.println("保存成功!!!");
} catch (HibernateException e) {
            e.printStackTrace();
            tx.rollback();
}finally{
            HibernateSessionFactory.closeSession();
}

效果图:

Hibernate 一对一_xml_02


查看数据库是否存在该表

selectid, namefrom person;

selectid, nofrom idcard

Hibernate 一对一_实体类_03

 

Hibernate 一对一_实体类_04


 

 

 

 

标签:Hibernate,tx,Person,一对一,IdCard,person,session,idCard
From: https://blog.51cto.com/u_16089934/6228053

相关文章

  • 记录一次springBoot+hibernate+JPA+swagger2+链接人大金仓的项目demo
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.spring......
  • hibernate.cfg.xml配置文件简介
    1.Hibernate核心配置文件,也即hibernate.cfg.xml,还可以是hibernate.properties格式。包含了数据库连接的相关信息以及映射文件的基本信息。通常情况下,该配置文件默认放在项目的src目录下,当项目发布后,该文件会在项目的WEB-INF/classes路径下。2.常用的模板<?xmlversion="......
  • Spring与Hibernate的整合
    1.Spring与Hibernate的整合1.1.在Spring容器中创建SessionFactory为了避免硬编码的资源查找与应用程序对象紧密耦合,Spring允许你在Spring容器中以bean的方式定义诸如JDBCDataSource或者HibernateSessionFactory的数据访问资源。任何需要进行资源访问的应用程序对象只需要持有......
  • Hibernate对象的CRUD操作
    1.  Hibernate对象的CRUD操作1.1. 对象的三种状态瞬时(Transient)-由new操作符创建,且尚未与HibernateSession关联的对象被认定为瞬时(Transient)的。瞬时(Transient)对象不会被持久化到数据库中,也不会被赋予持久化标识(identifier)。如果瞬时(Transient)对象在程序中没有被......
  • Hibernate HQL详解
    1.  HibernateHQL详解1.1. hql简介Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的概念。看个示例,看看sql和HQL的相同与不同:Sql:select*......
  • Hibernate关联关系映射
    1.  Hibernate关联关系映射1.1. onetoone<classname="Person"><idname="id"column="personId"><generatorclass="native"/></id><jointable="PersonAddress"......
  • hibernate:分页
    intpage=2;//分页页码 intsize=2;//列数 List<User>users=session.createQuery("selectafromUsera") .setFirstResult((page-1)*size)//起始条数startend .setMaxResults(size)//列数 .list(); //select*fromuserlimit0,2起始条数,列数 for......
  • Hibernate 教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用J......
  • 在eclipse中创建一个简单的hibernate项目
    1.在eclipse中新建一个Javaweb项目 2.输入项目名称,点击完成 3.在lib文件中导入jar包 4.在项目的src目录下,新建一个空白文件,命名为hibernate.properties hibernate.properties代码如下:hibernate.dialect=org.hibernate.dialect.MySQLDialecthibernate.connection......
  • hibernate 乐观锁与悲观锁使用
    评:Hibernate支持两种锁机制:即通常所说的“悲观锁(PessimisticLocking)”和“乐观锁(OptimisticLocking)”。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。......