`
iloveoracle
  • 浏览: 118754 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Hibernate相关

    博客分类:
  • java
阅读更多
    1 jpa是什么?jpa与hibernate关系? jpa与ejb关系?<br>       http://lengdian.iteye.com/blog/611128<br>       jpa定义java persistence api<br>       jpa通过jdk 5.0注解或xml描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。<br>       hibernate实现了jpa标准<br>       jpa就是应用程序内置的一套事务管理机制,ejb,hibernate都是建立在它基础之上的<br>       jpa是一种接口,jboss服务器用hibernate实现了该接口.j2ee在jboss服务器下部署,在程序中调用jpa.实现上是调用的是<br>       hibernate3.0 sun引入新的jpa orm规范出于两个原因:其一,简化现有java ee和java se应用的对象持久化的开发工作;<br>       其二,sun希望整合对orm技术,实现天下归一。<br>       jpa通过jdk 5.0注解或xml描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。<br>       jpa 的目标之一是制定一个可以由很多供应商实现的api,并且开发人员可以编码来实现该api,而不是使用私有供应商特有的api<br>       。因此开发人员只需使用供应商特有的api来获得jpa规范没有解决但应用程序中需要的功能。尽可能地使用jpa api,但是当需要<br>       供应商公开但是规范中没有提供的功能时,则使用供应商特有的api。<br>       jpa是需要provider来实现其功能的,hibernate就是jpa provider中很强的一个,目前来说应该无人能出其右。从功能上来说,<br>       jpa现在就是hibernate功能的一个子集。hibernate 从3.2开始,就开始兼容jpa。
 
2  可以将hibernate分成几块?<br>   (1) pojo类模型(与数据库scheme,表映射关系 ddl sql对应):<br>     pojo类         -- 表<br>     pojo类组合关系 -- 表关联关系(一对一、一对多、多对一,多对多) 参考《企业应用架构模式》 第12章 对象-关系结构模式12.2 12.3 12.4<br>     pojo类继承多态关系 -- 表 参考《企业应用架构模式》 第12章 对象-关系结构模式12.7 12.8 12.9<br><br>   (2) hibernate增删改查相关(与数据库dml sql对应):<br>     查询种类:   <br>       jdbc:标准的sql语句<br>       hql :hibernate query language<br>       qbc :(query by criteria) criteria<br>       qbe :(query by example)<br>       导航对象图查询<br>       根据id查询<br>      增删改:<br>   (3) hibernate configration,sessionfactory, session,transaction (与数据库建立连接或连接池,事务对应):<br>   (4) 缓存策略:ehcache,memcache...<br>   (5) 其它配置:<br>    xml, annotation
 
 3  javax.persistence.entity类来自于<br>     annotation:<br>      (1) java.lang.annotation:     j2se标准  jdkdoc<br>      (2) ejb3-persistence.jar:     j2ee标准  http://java.sun.com/javaee/technologies/persistence.jsp<br>      (3) hibernate-annotation.jar: hibernate实现<br>      实体类与数据库表之间映射通过annotation实现的,当然也可以用xml配置,全球眼中心是通过hibernatexml配置完成的<br>      目标一致,实现方式不同
 
4  懂hibernate是不是就不需要懂,数据库 和 jdbc了呢?<br>   需要懂,因为hibernate只是轻量级封装了jdbc而已,实际的事务,还是用jdbc的,<br>   hibernate做的最主要的工作,是把pojo对象转换为数据库语句<br>   只有懂数据库才能把hibernate用好,用精。
 
hibernate中的session相当于jdbc中的connection实际上hibernate 中的session封装了connection,数据库连接也是通过<br>     jdbc的拿到的connection连接
 
spring + hibernate 配置中,如何管理session and transation?<br>         自己写的hibernate例子中 所有的读写操作都是通过session做的<br>         网管后台业务中,所有的操作是通过hibernatetemplate操作的<br>         hibernatetemplate find操作是通过hibernatecallback实现的<br>         采用声明式的事务
 
 5 表与类之间继承关系分为?表与类之间组合关系?<br>   表与类之间继承关系:<br>     class table inheritance(类表继承):表示了类的继承层次,每个类都对应一个表。<br>     concrete table inheritance(具体表继承):表示了类的继承层次,层次中的每一个<br>        具体层的类对应一个表<br>     single table inheritance(单表继承):通过一个表来表示类的一个继承层次,表中各<br>        列对应不同类中的所有域。<br>     unit of work(工作单元):维护由业务锁影响的对象列表,并协调更改的写出以及并发问题的解决。<br><br>  6  表与类之间组合关系: 一对一,一对多,多对一,多对多<br><br>     session-per-operation    不建议使用<br>     session-per-request      建议使用<br>     session-per-request-with-detached-object<br>     session-per-conversation <br>     session-per-user-session 不建议使用<br>     session-per-application  不建议使用
 
6 基于annotation的hibernate主键生成策略:
  http://hi.baidu.com/jjzhong/blog/item/728fc0dd907790e677c6384e.html<br>       hibernate 主键策略:identifiergeneratorfactory<br>        generators.put("uuid", uuidhexgenerator.class);<br>        generators.put("hilo", tablehilogenerator.class);<br>        generators.put("assigned", assigned.class);<br>        generators.put("identity", identitygenerator.class);<br>        generators.put("select", selectgenerator.class);<br>        generators.put("sequence", sequencegenerator.class);<br>        generators.put("seqhilo", sequencehilogenerator.class);<br>        generators.put("increment", incrementgenerator.class);<br>        generators.put("foreign", foreigngenerator.class);<br>        generators.put("guid", guidgenerator.class);<br>        generators.put("uuid.hex", uuidhexgenerator.class); //uuid.hex is deprecated<br>        generators.put("sequence-identity", sequenceidentitygenerator.class);<br>        hibernate一共默认支持十三种生成策略。 <br>        1、native 2、uuid 3、hilo 4、assigned 5、identity 6、select 7、sequence 8、seqhilo 9、increment <br>        10、foreign 注意:直接使用@primarykeyjoincolumn 报错(?) 例如 应该为 11、guid 12、uuid.hex <br>        13、sequence-identity       <br>       通过@genericgenerator自定义主键生成策略如果实际应用中,主键策略为程序指定了就用程序指定的主键(assigned),没有指<br>       定就从sequence中取。明显上面所讨论的策略都不满足,只好自己扩展了,集成assigned和sequence两种策略。 实际应用中,<br>       定义同sequence。
 
 
0
8
分享到:
评论

相关推荐

    hibernate相关插件全集

    本篇文章将围绕"hibernate相关插件全集"这一主题,详细介绍给定的压缩包文件中包含的三个关键组件:Middlegen-Hibernate-r5、hibernate-annotations-3.3.0.GA和hibernate-extensions-2.1.3。 首先,Middlegen-...

    hibernate相关jar包

    在你提供的"hibernate相关jar包"中,包含以下几个关键的库文件: 1. **hibernate3.jar**:这是Hibernate的核心库,包含了Hibernate的所有主要组件,如实体管理器、会话工厂、查询API等。这个JAR文件使得开发者能够...

    hibernate有关jar包

    "hibernate有关jar包"是开发人员进行Hibernate开发所必需的依赖库集合。 这些jar包通常包括以下组件: 1. **hibernate-core.jar**:这是Hibernate的核心库,包含了ORM的主要功能,如实体管理、会话管理、查询语言...

    各种hibernate相关jar包

    标题中的“各种hibernate相关jar包”表明这是一个与Hibernate框架相关的软件库集合,其中包含了许多用于支持Hibernate操作的Java类库。Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发人员在Java应用程序...

    Hibernate相关jar包括新版本jdk不兼容旧版本的jar.zip

    这个问题在"Hibernate相关jar包括新版本jdk不兼容旧版本的jar.zip"这个压缩包中被提及,表明其中可能包含了针对这种兼容性问题的解决方案。 首先,我们需要理解为什么新版本的JDK可能导致与Hibernate的不兼容性。...

    Hibernate 相关JAR包

    标题中的“Hibernate相关JAR包”指的是在Java项目中使用Hibernate框架所必需的一组库文件。这些JAR包包含了Hibernate的核心组件、依赖的第三方库以及可能的特定功能扩展。在Java项目中,正确地引入这些JAR包是确保...

    Hibernate相关类包.zip_hibernate

    本压缩包"Hibernate相关类包.zip_hibernate"包含了进行Hibernate开发所需的各类库文件,使得开发者能够方便地在应用程序中管理数据库操作。以下是关于Hibernate框架及这些jar包的详细介绍。 1. **对象关系映射(ORM...

    hibernate 相关jar包

    这个压缩包包含了与Hibernate相关的19个jar包,这些jar包不仅涵盖了Hibernate框架本身的核心功能,还包含了其他辅助库,以支持邮件服务、MySQL和Oracle数据库驱动等功能。下面是这些jar包的详细解释: 1. **...

    hibernate的相关jar包

    Hibernate是一款强大的...总结,Hibernate的相关jar包是Java开发中进行ORM的重要组成部分,它们提供了数据库操作的便利性。同时,通过正确配置,我们可以方便地查看自动生成的建表语句,以便更好地理解和调试应用程序。

    传智播客hibernate源码

    - `hibernate_080914`: 直接与Hibernate相关的源码或教程材料,可能涵盖Hibernate的核心概念和用法。 通过研究这些文件,学习者可以深入了解Hibernate的工作原理,提升数据库操作的技能,并了解如何在实际项目中...

    Hibernate相关图片教程

    【Hibernate相关图片教程】 在Java世界中,Hibernate是一款非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发人员可以更专注于业务逻辑而非底层的SQL语句。本教程通过一系列图片的形式,深入...

    Hibernate相关资料

    对于相关技术人员,进阶内容可能包括: - 性能优化:如何调整配置,减少数据库访问,提高查询效率。 - 异常处理:了解Hibernate可能出现的异常及其解决方案。 - 分布式环境下的应用:在多线程、分布式系统中使用...

    hibernate相关配置.rar

    这个“hibernate相关配置.rar”文件很可能包含了关于如何配置和使用Hibernate的各种资源,包括XML配置文件、实体类、映射文件等。接下来,我们将深入探讨Hibernate的核心概念和配置。 1. **什么是Hibernate?** ...

    hibernate4所有相关jar包

    hibernate4最新的所有相关jar包

    Hibernate框架jia包

    Hibernate框架是中国Java开发领域广泛应用的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。这个“Hibernate框架jia包”包含了你需要在项目中使用Hibernate的所有核心库和依赖,确保你能顺利进行...

    Hibernate相关文档下载(全)

    本压缩包中的“Hibernate相关文档下载(全)”包含了一系列关于Hibernate的详细资料,对于Java开发人员来说是一份宝贵的资源。 1. **Hibernate概述** Hibernate是一个开源的ORM(Object-Relational Mapping)框架...

    hibernate相关原理与配置快速入门

    1. **添加依赖**:在项目中引入 Hibernate 相关的库,如 hibernate-core、hibernate-validator 等。 2. **配置文件**:创建 hibernate.cfg.xml 文件,配置数据库连接、实体类路径等。 3. **映射文件**:为每个实体...

    Hibernate,hibernate笔记

    对于MyEclipse项目,可能需要在`.project`文件中添加Hibernate的nature,确保能够正确识别和处理Hibernate相关操作。如果遇到错误,例如配置错误导致browse无法选择正确的项目目录,可能需要手动修改`.project`文件...

Global site tag (gtag.js) - Google Analytics