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事务控制"主要关注在Hibernate中如何管理和协调事务,以满足ACID原则,即原子性、一致性、隔离性和持续性。 首先,事务是数据库操作的基本单元,它确保一系列数据库操作要么全部成功,要么全部回滚。原子...
一、Hibernate事务管理 在数据库操作中,事务确保了数据的一致性和完整性。Hibernate提供了四种事务隔离级别:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ)和串行化...
本文将深入探讨在业务层实现Hibernate事务控制的方法,特别关注通过动态代理技术来实现对业务对象(BO)的事务控制。 #### 二、问题背景 在传统的基于DAO(Data Access Object)模式的应用程序中,每个DAO类通常...
本文将深入探讨Hibernate中的事务和并发控制,这对于开发高效、稳定的数据库应用至关重要。 首先,我们来理解Hibernate中的事务管理。在数据库操作中,事务是保证数据一致性的重要手段。一个事务包含了一组数据库...
2. Hibernate事务管理:使用`HibernateTransactionManager`结合SessionFactory进行事务控制。 3. AOP(面向切面编程)在事务管理中的应用:`TransactionInterceptor`基于AOP拦截方法调用,处理事务。 4. 配置事务...
3. **Hibernate事务配置:**在Spring中,需要配置Hibernate SessionFactory,并将其注入到需要进行数据库操作的服务中。同时,通过`PlatformTransactionManager`接口(如HibernateTransactionManager)配置事务管理...
#### 四、事务控制方法 ##### 4.1 开启事务 无论是使用JDBC事务还是JTA事务,都需要首先创建`Session`实例,并通过该实例开启事务。例如: ```java Session session = sessionFactory.openSession(); Transaction...
在JDBC中,`Connection`对象提供了事务控制的方法,如`setAutoCommit(false)`用于开启手动事务模式,`commit()`用于提交事务,而`rollback()`则用于回滚事务。在示例代码中,当数据库操作出现异常时,会调用`...
本主题聚焦于"声明式事务控制"在Spring 2.5与Hibernate 3集成中的应用。 Spring框架是Java领域的一个核心组件,其提供了丰富的功能,包括依赖注入、AOP(面向切面编程)以及事务管理。Spring的声明式事务管理是基于...
**Hibernate事务管理详解** 在Java开发中,尤其是在企业级应用中,事务管理是不可或缺的一部分。Hibernate作为一款流行的ORM(对象关系映射)框架,提供了强大的事务处理能力。本篇文章将深入探讨Hibernate中的事务...
【hibernate事务管理机制】是指在使用Hibernate框架进行数据库操作时,如何管理和协调事务的一系列规则和策略。事务管理是确保数据一致性、完整性和并发控制的重要机制。 **悲观锁**是预防性的锁定策略,它假设并发...
在Spring配置文件中,我们需要开启事务管理器,并在需要事务控制的Service层方法上添加`@Transactional`注解。这个注解允许我们指定事务的传播行为(如REQUIRED、REQUIRES_NEW等)、隔离级别(如READ_COMMITTED、...
在本篇“Spring Hibernate 事务管理学习笔记(二)”中,我们将深入探讨Spring框架与Hibernate集成时如何实现高效、安全的事务管理。这是一篇关于源码分析和技术工具使用的文章,适合对Java开发和数据库操作有基础...
在IT领域,尤其是在Java开发中,Spring框架和...通过合理地配置Spring的AOP和事务管理,我们可以更专注于业务逻辑,而无需关心底层的事务控制细节。这使得Spring和Hibernate成为Java企业级应用开发中的首选工具。
2. **Hibernate事务**: Hibernate本身也提供了一种事务管理机制,但在Spring环境中,我们通常使用Spring的事务管理器来协调。当@Transactional注解应用于方法上,Spring会在该方法执行前后自动管理事务的开始和结束...
在`Spring_1800_Spring_Hibernate_Transaction_Annotation`这个压缩包文件中,很可能包含了使用注解方式实现Spring整合Hibernate事务处理的相关示例代码和配置文件。通过阅读和理解这些代码,你可以更好地掌握这一...
在Spring框架中,为了管理和控制Hibernate事务,Spring提供了两种关键工具:HibernateTemplate和JdbcTemplate。这两个模板类简化了与数据库的交互,同时也处理了事务管理。让我们深入了解一下这两个类以及它们如何...
在整合Spring时,我们可以利用Spring的Transaction Management来控制Hibernate的事务。 在本项目中,我们需要配置Spring的事务管理器,一般有两种方式:编程式事务管理和声明式事务管理。声明式事务管理更为常见,...
2. **Hibernate事务管理**: - Hibernate提供了`Session`和`SessionFactory`,它们是与数据库交互的主要对象。`Session`负责单个数据库会话,而`SessionFactory`在整个应用程序生命周期中只创建一次,用于生成`...
总之,Spring通过其灵活的事务管理机制,极大地简化了与JDBC和Hibernate集成时的事务控制。无论是在简单还是复杂的业务逻辑中,Spring都能提供可靠的事务管理方案,确保数据的正确性和一致性。通过理解并熟练运用...