`
hzwowo
  • 浏览: 21424 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Hibernate 的事务控制

阅读更多

Person类的hbm配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >    
<hibernate-mapping package="com.model">
   <class name="Person" table="persons">
       <id name="id">
         <generator class="native"></generator>
         </id>
       <property name="name"></property>
 </class>

MyClass类的hbm配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >    
<hibernate-mapping package="com.model">
   <class name="MyClass" table="classes">
       <id name="id">
         <generator class="native"></generator>
       </id>
       <property name="className"></property>
       <set name="pers" cascade="save-update" >
            <key>
              <column name="class_id" ></column>
            </key>
            <one-to-many class="Person" />
       </set>
   </class>
</hibernate-mapping>

测试类:

SessionFactory sf=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
        Session session=sf.openSession();
        session.beginTransaction();
        MyClass mc=new MyClass();
        mc.setClassName("lesing");
        Person per1=new Person();
        per1.setName("g");
        Person per2=new Person();
        per2.setName("g");
        Set<Person> pers=new HashSet<Person>();
        pers.add(per1);
        pers.add(per2);
        mc.setPers(pers);
        session.save(mc);

这里不加session.getTransaction().commit()控制台只打印三条sql语句,而没做persons表中class_id的更新

sql语句:

Hibernate: insert into classes (className) values (?)
Hibernate: insert into persons (name, idcard, dept_id) values (?, ?, ?)
Hibernate: insert into persons (name, idcard, dept_id) values (?, ?, ?)
希望有人帮我解释一下

 

 

分享到:
评论

相关推荐

    Hibernate事务控制[定义].pdf

    "Hibernate事务控制"主要关注在Hibernate中如何管理和协调事务,以满足ACID原则,即原子性、一致性、隔离性和持续性。 首先,事务是数据库操作的基本单元,它确保一系列数据库操作要么全部成功,要么全部回滚。原子...

    hibernate事务,并发及缓存管理实例

    一、Hibernate事务管理 在数据库操作中,事务确保了数据的一致性和完整性。Hibernate提供了四种事务隔离级别:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ)和串行化...

    Hibernate业务层控制Hibernate业务层控制

    本文将深入探讨在业务层实现Hibernate事务控制的方法,特别关注通过动态代理技术来实现对业务对象(BO)的事务控制。 #### 二、问题背景 在传统的基于DAO(Data Access Object)模式的应用程序中,每个DAO类通常...

    Hibernate 事务和并发控制

    本文将深入探讨Hibernate中的事务和并发控制,这对于开发高效、稳定的数据库应用至关重要。 首先,我们来理解Hibernate中的事务管理。在数据库操作中,事务是保证数据一致性的重要手段。一个事务包含了一组数据库...

    Spring Hibernate事务实例

    2. Hibernate事务管理:使用`HibernateTransactionManager`结合SessionFactory进行事务控制。 3. AOP(面向切面编程)在事务管理中的应用:`TransactionInterceptor`基于AOP拦截方法调用,处理事务。 4. 配置事务...

    Spring Hibernate 事务处理 详细说明

    3. **Hibernate事务配置:**在Spring中,需要配置Hibernate SessionFactory,并将其注入到需要进行数据库操作的服务中。同时,通过`PlatformTransactionManager`接口(如HibernateTransactionManager)配置事务管理...

    详解Hibernate事务处理机制

    #### 四、事务控制方法 ##### 4.1 开启事务 无论是使用JDBC事务还是JTA事务,都需要首先创建`Session`实例,并通过该实例开启事务。例如: ```java Session session = sessionFactory.openSession(); Transaction...

    Hibernate事务和并发控制

    在JDBC中,`Connection`对象提供了事务控制的方法,如`setAutoCommit(false)`用于开启手动事务模式,`commit()`用于提交事务,而`rollback()`则用于回滚事务。在示例代码中,当数据库操作出现异常时,会调用`...

    声明式事务控制spring+hibernate集成

    本主题聚焦于"声明式事务控制"在Spring 2.5与Hibernate 3集成中的应用。 Spring框架是Java领域的一个核心组件,其提供了丰富的功能,包括依赖注入、AOP(面向切面编程)以及事务管理。Spring的声明式事务管理是基于...

    Hibernate事务(源码)

    **Hibernate事务管理详解** 在Java开发中,尤其是在企业级应用中,事务管理是不可或缺的一部分。Hibernate作为一款流行的ORM(对象关系映射)框架,提供了强大的事务处理能力。本篇文章将深入探讨Hibernate中的事务...

    hibernate事务管理机制.doc

    【hibernate事务管理机制】是指在使用Hibernate框架进行数据库操作时,如何管理和协调事务的一系列规则和策略。事务管理是确保数据一致性、完整性和并发控制的重要机制。 **悲观锁**是预防性的锁定策略,它假设并发...

    spring hibernate 事务管理学习笔记(一)

    在Spring配置文件中,我们需要开启事务管理器,并在需要事务控制的Service层方法上添加`@Transactional`注解。这个注解允许我们指定事务的传播行为(如REQUIRED、REQUIRES_NEW等)、隔离级别(如READ_COMMITTED、...

    spring hibernate 事务管理学习笔记(二)

    在本篇“Spring Hibernate 事务管理学习笔记(二)”中,我们将深入探讨Spring框架与Hibernate集成时如何实现高效、安全的事务管理。这是一篇关于源码分析和技术工具使用的文章,适合对Java开发和数据库操作有基础...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    在IT领域,尤其是在Java开发中,Spring框架和...通过合理地配置Spring的AOP和事务管理,我们可以更专注于业务逻辑,而无需关心底层的事务控制细节。这使得Spring和Hibernate成为Java企业级应用开发中的首选工具。

    spring mvc+hibernate 实现事务管理(全注解版)

    2. **Hibernate事务**: Hibernate本身也提供了一种事务管理机制,但在Spring环境中,我们通常使用Spring的事务管理器来协调。当@Transactional注解应用于方法上,Spring会在该方法执行前后自动管理事务的开始和结束...

    spring整合hibernate实现事务处理

    在`Spring_1800_Spring_Hibernate_Transaction_Annotation`这个压缩包文件中,很可能包含了使用注解方式实现Spring整合Hibernate事务处理的相关示例代码和配置文件。通过阅读和理解这些代码,你可以更好地掌握这一...

    Spring控制Hibernate中的事务传播特性与隔离级别操作.docx

    在Spring框架中,为了管理和控制Hibernate事务,Spring提供了两种关键工具:HibernateTemplate和JdbcTemplate。这两个模板类简化了与数据库的交互,同时也处理了事务管理。让我们深入了解一下这两个类以及它们如何...

    spring mvc+hibernate实现事务管理(配置文件版)

    在整合Spring时,我们可以利用Spring的Transaction Management来控制Hibernate的事务。 在本项目中,我们需要配置Spring的事务管理器,一般有两种方式:编程式事务管理和声明式事务管理。声明式事务管理更为常见,...

    spring,hibernate整合实现事务管理(MethodInterceptor)

    2. **Hibernate事务管理**: - Hibernate提供了`Session`和`SessionFactory`,它们是与数据库交互的主要对象。`Session`负责单个数据库会话,而`SessionFactory`在整个应用程序生命周期中只创建一次,用于生成`...

    spring分别与jdbc和hibernate结合的事务控制--案例

    总之,Spring通过其灵活的事务管理机制,极大地简化了与JDBC和Hibernate集成时的事务控制。无论是在简单还是复杂的业务逻辑中,Spring都能提供可靠的事务管理方案,确保数据的正确性和一致性。通过理解并熟练运用...

Global site tag (gtag.js) - Google Analytics