`

hibernate3.6-联合主键注解以及openSession和getCurrentSession区别

 
阅读更多

【联合主键】

>>>>配置方式: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>

 

0
1
分享到:
评论

相关推荐

    hibernate3.6.jar

    9. **继承映射**:Hibernate 提供了单表继承、联合继承和表格-per类的继承策略,使得对象继承结构能够有效地映射到数据库中。 10. **事件监听器**:Hibernate 允许注册事件监听器,监听对象的生命周期事件(如加载...

    Hibernate联合主键的例子

    在Hibernate中,我们可以使用`@Embeddable`和`@EmbeddedId`注解来定义和使用联合主键。 1. **创建联合主键类:** 在MyEclipse中,我们首先创建一个Java类来表示联合主键。这个类需要被标记为`@Embeddable`,并包含...

    Hibernate3.6(开发必看).pdf

    在Hibernate 3.6中,ORM的实现主要是通过Hibernate的映射文件(.hbm.xml)或注解来完成的。 Hibernate API是Hibernate框架提供的一系列接口和类。例如,Configuration类用于读取配置文件(如hibernate.cfg.xml),...

    hibernate many-to-many级联保存,级联更新,级联删除

    在Hibernate中,这种关系通过中间关联表(也称为连接表或联合表)来实现,该表包含两个实体的主键作为其外键。 二、配置Many-to-Many关系 在Hibernate配置文件(如hibernate.cfg.xml)中,你需要为实体类定义映射...

    Hibernate3.6应用实例详解

    本文介绍了如何使用Hibernate 3.6进行简单的数据库操作,包括实体类的设计、配置文件的编写以及基本的持久化和查询操作。Hibernate的强大之处在于它极大地简化了数据库操作,使得开发者能够更加专注于业务逻辑的实现...

    hibernate-cglib-repack-2.1_3.jar.zip

    本文将详细探讨Hibernate-CGLIB的结合使用以及repack.jar在其中的作用。 首先,让我们了解Hibernate。Hibernate是一个开源的ORM工具,它可以将Java对象与数据库表进行映射,使得开发者可以使用面向对象的方式来处理...

    hibernate-distribution-3.5.0-Final-dist文档

    本文档集是针对Hibernate 3.5.0-Final版本的详细指南,涵盖了该框架的核心概念、配置、使用方法以及API。由于文档的完整版可能超过了上传限制,这里只包含“documentation”部分,更多内容可以参考作者提供的专辑...

    hibernate-annotations-3.4.0.GA+hibernate-distribution-3.3.2.GA-dist

    本文将深入探讨Hibernate 3.3.2和Hibernate Annotations 3.4.0的核心特性和实际应用场景。 一、Hibernate 3.3.2概述 Hibernate 3.3.2是 Hibernate框架的一个稳定版本,它包含了一系列增强和改进。这一版本的亮点...

    hibernate复合主键配置和使用

    在Hibernate中,我们可以通过`@Embeddable`和`@EmbeddedId`注解来实现复合主键的配置。 1. 创建复合主键类 首先,我们需要创建一个表示复合主键的类,该类需要被`@Embeddable`注解标记。例如,假设我们有用户地址...

    hibernate_3.6的一个简单链接Oracle例子

    1. **环境配置**:首先,你需要在项目中引入Hibernate 3.6的JAR文件,以及Oracle的JDBC驱动(如ojdbc6.jar)。这些库将提供必要的API来建立和管理数据库连接。 2. **Hibernate配置文件(hibernate.cfg.xml)**:这...

    hibernate-release-4.3.9.Final.rar

    这次我们关注的是Hibernate 4.3.9.Final版本,它包含了“required”文件夹,这通常是Hibernate运行所必需的基本组件和库。 1. Hibernate概述: Hibernate是Java应用程序与关系数据库之间的一个桥梁,它通过XML或...

    java后台开发Hibernate例子--登录查询

    在Java后台开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。在这个“java后台开发Hibernate例子--登录查询”中,我们将深入探讨如何使用Hibernate来实现用户登录功能的数据库...

    hibernate一对一主键关联(注解版)

    本知识点主要讲解的是使用Hibernate实现一对一主键关联(Primary Key Join)的方式,通过注解进行配置。 一对一的关联在数据库设计中并不常见,但当两个实体之间确实存在一对一的关系时,如用户和其个人资料,这种...

    hibernate--1.搭建hibernate环境

    5. **实体类定义**:为数据库表创建对应的Java实体类,使用注解`@Entity`声明该类为Hibernate实体,`@Table`指定对应的数据库表,`@Id`标记主键字段,例如: ```java @Entity @Table(name = "users") public ...

    hibernate-release-5.2.2.Final.zip

    Hibernate就是ORM的一种实现,它通过XML或注解方式定义对象和数据库之间的映射关系。 3. Hibernate 5.2.2.Final新特性: - 改进了查询API,支持JPA 2.2规范。 - 提供了更强大的HQL(Hibernate Query Language)和...

    struts2.3.x+spring3.1.x+hibernate3.6 demo

    关键问题有几个,第一个HibernateDaoSupport这个没有了,在使用hibernateTemplate的时候,报错误:java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session 很是悲...

    hibernate配置-开源代码.doc

    通过对“hibernate配置-开源代码.doc”中提到的关键文件的分析,我们可以了解到 Hibernate 的配置方式以及如何使用 `Session` 接口进行数据库操作。正确的配置可以确保 Hibernate 正常运行,而熟练掌握 `Session` 的...

    Hibernate入门 - 基础配置

    Hibernate作为ORM框架的代表,具有强大的功能和灵活性,特别是在处理复杂的对象关系和数据库约束方面。 在Hibernate 3.x版本中,对数据库约束的支持得到了加强,使用更加便捷。尽管早期有些人认为ORM框架效率较低且...

    hibernate-release-5.0.7.Final.zip官方

    本文详细介绍了 Hibernate 5.0.7.Final 版本的相关知识点,包括下载与安装过程、新特性与改进、使用案例以及常见问题解答等内容。希望这些内容能够帮助开发者更好地理解和使用 Hibernate,从而构建出高效稳定的 Java...

    hibernate5--1.入门及核心API

    Hibernate 5的主要目标是简化开发,提高性能,以及增强对Java新特性的支持,如Java 8的日期时间API。它通过提供对象关系映射服务,消除了传统的JDBC编程中的很多繁琐工作,如SQL的编写、结果集的遍历等。 ### 2. ...

Global site tag (gtag.js) - Google Analytics