【联合主键】
>>>>配置方式:xml:
1. Student中单独创建StudentPk主键实体类
2. 配置:
<composite-id name="studentPK"> <key-property name="name" column="username" /> <key-property name="nickname" column="nickname" /> </composite-id>
>>>>注解方式:annotation
1. Teacher中单独创建TeacherPk主键实体类
2.注解
** 注解方式1:【一个注解】※常用
<1>
@EmbeddedId public TeacherPk getTeacherPk()
<2>主键类实现Serializable接口+重写hashCode和equals方法。
TeacherPk implements Serializable{ @Override public int hashCode() @Override public boolean equals(Object obj) }
**注解方式2:【两个注解】
<1>
@Embeddable public class TeacherPk implements Serializable
@Id public TeacherPk getTeacherPk()
<2>同上
【openSession和getCurrentSession区别】
1. openSession产生的实例是SessionImpl.class的实例;
getCurrentSession产生的是$Proxy代理类实例
2. openSession每次调用产生新的Session;
getCurrentSession在第一次调用时生成新的Session,之后关联到上下文,
在事务完成(commit/rollback)之前,每次得到的都是已经存在的Session,
直到事务提交或者回滚。
3. openSession的Session需要手动close();
getCurrentSession的会在事务完成(commit/rollback)时自动close。
4. openSession的可以直接使用。
getCurrentSession需要再hibernate的配置文件中配置current_session_context_class.。比如:
<property name="current_session_context_class">thread</property>
相关推荐
9. **继承映射**:Hibernate 提供了单表继承、联合继承和表格-per类的继承策略,使得对象继承结构能够有效地映射到数据库中。 10. **事件监听器**:Hibernate 允许注册事件监听器,监听对象的生命周期事件(如加载...
在Hibernate中,我们可以使用`@Embeddable`和`@EmbeddedId`注解来定义和使用联合主键。 1. **创建联合主键类:** 在MyEclipse中,我们首先创建一个Java类来表示联合主键。这个类需要被标记为`@Embeddable`,并包含...
在Hibernate 3.6中,ORM的实现主要是通过Hibernate的映射文件(.hbm.xml)或注解来完成的。 Hibernate API是Hibernate框架提供的一系列接口和类。例如,Configuration类用于读取配置文件(如hibernate.cfg.xml),...
在Hibernate中,这种关系通过中间关联表(也称为连接表或联合表)来实现,该表包含两个实体的主键作为其外键。 二、配置Many-to-Many关系 在Hibernate配置文件(如hibernate.cfg.xml)中,你需要为实体类定义映射...
本文介绍了如何使用Hibernate 3.6进行简单的数据库操作,包括实体类的设计、配置文件的编写以及基本的持久化和查询操作。Hibernate的强大之处在于它极大地简化了数据库操作,使得开发者能够更加专注于业务逻辑的实现...
本文将详细探讨Hibernate-CGLIB的结合使用以及repack.jar在其中的作用。 首先,让我们了解Hibernate。Hibernate是一个开源的ORM工具,它可以将Java对象与数据库表进行映射,使得开发者可以使用面向对象的方式来处理...
本文档集是针对Hibernate 3.5.0-Final版本的详细指南,涵盖了该框架的核心概念、配置、使用方法以及API。由于文档的完整版可能超过了上传限制,这里只包含“documentation”部分,更多内容可以参考作者提供的专辑...
本文将深入探讨Hibernate 3.3.2和Hibernate Annotations 3.4.0的核心特性和实际应用场景。 一、Hibernate 3.3.2概述 Hibernate 3.3.2是 Hibernate框架的一个稳定版本,它包含了一系列增强和改进。这一版本的亮点...
在Hibernate中,我们可以通过`@Embeddable`和`@EmbeddedId`注解来实现复合主键的配置。 1. 创建复合主键类 首先,我们需要创建一个表示复合主键的类,该类需要被`@Embeddable`注解标记。例如,假设我们有用户地址...
1. **环境配置**:首先,你需要在项目中引入Hibernate 3.6的JAR文件,以及Oracle的JDBC驱动(如ojdbc6.jar)。这些库将提供必要的API来建立和管理数据库连接。 2. **Hibernate配置文件(hibernate.cfg.xml)**:这...
这次我们关注的是Hibernate 4.3.9.Final版本,它包含了“required”文件夹,这通常是Hibernate运行所必需的基本组件和库。 1. Hibernate概述: Hibernate是Java应用程序与关系数据库之间的一个桥梁,它通过XML或...
在Java后台开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。在这个“java后台开发Hibernate例子--登录查询”中,我们将深入探讨如何使用Hibernate来实现用户登录功能的数据库...
本知识点主要讲解的是使用Hibernate实现一对一主键关联(Primary Key Join)的方式,通过注解进行配置。 一对一的关联在数据库设计中并不常见,但当两个实体之间确实存在一对一的关系时,如用户和其个人资料,这种...
5. **实体类定义**:为数据库表创建对应的Java实体类,使用注解`@Entity`声明该类为Hibernate实体,`@Table`指定对应的数据库表,`@Id`标记主键字段,例如: ```java @Entity @Table(name = "users") public ...
Hibernate就是ORM的一种实现,它通过XML或注解方式定义对象和数据库之间的映射关系。 3. Hibernate 5.2.2.Final新特性: - 改进了查询API,支持JPA 2.2规范。 - 提供了更强大的HQL(Hibernate Query Language)和...
关键问题有几个,第一个HibernateDaoSupport这个没有了,在使用hibernateTemplate的时候,报错误:java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session 很是悲...
通过对“hibernate配置-开源代码.doc”中提到的关键文件的分析,我们可以了解到 Hibernate 的配置方式以及如何使用 `Session` 接口进行数据库操作。正确的配置可以确保 Hibernate 正常运行,而熟练掌握 `Session` 的...
Hibernate作为ORM框架的代表,具有强大的功能和灵活性,特别是在处理复杂的对象关系和数据库约束方面。 在Hibernate 3.x版本中,对数据库约束的支持得到了加强,使用更加便捷。尽管早期有些人认为ORM框架效率较低且...
本文详细介绍了 Hibernate 5.0.7.Final 版本的相关知识点,包括下载与安装过程、新特性与改进、使用案例以及常见问题解答等内容。希望这些内容能够帮助开发者更好地理解和使用 Hibernate,从而构建出高效稳定的 Java...
Hibernate 5的主要目标是简化开发,提高性能,以及增强对Java新特性的支持,如Java 8的日期时间API。它通过提供对象关系映射服务,消除了传统的JDBC编程中的很多繁琐工作,如SQL的编写、结果集的遍历等。 ### 2. ...