hibernate
文章平均质量分 77
liyong1115
这个作者很懒,什么都没留下…
展开
-
Hibernate与数据库触发器协同工作
数据库触发器是数据库的一种监听机制,这种机制会监视数据库中的某种特定的操作,当这种操作发生时,触发器就会执行,并且会完成一些特定的逻辑,在数据库中能够激发触发器的操作有:insert,update,delete三种,当这三种操作发生在一条记录或者某个特殊字段上,如果在该记录或者该字段上有触发器,那么触发器便会被激发执行。但是当Hibernate与触发器协同执行时,会造成两个问题。第一:触发器原创 2008-01-22 13:25:00 · 620 阅读 · 0 评论 -
组件(Component)映射
第 9 章 组件(Component)映射Component这个概念在Hibernate中几处不同的地方为了不同的目的被重复使用. 9.1. 依赖对象(Dependent objects)Component是一个被包含的对象,它作为值类型被持久化,而非一个被引用的实体。“component(组件)”这一术语指的是面向对象的原创 2008-02-01 12:45:00 · 1008 阅读 · 0 评论 -
持久化类(Persistent Classes)
第 5 章 持久化类(Persistent Classes)在应用程序中,用来实现业务问题实体的(如,在电子商务应用程序中的Customer和Order) 类就是持久化类。不能认为所有的持久化类的实例都是持久的状态——一个实例的状态也可能 是瞬时的或脱管的。 如果这些持久化类遵循一些简单的规则,Hibernate能够工作得最好,这些规则被称作, 简单传统Ja原创 2008-02-01 12:49:00 · 1708 阅读 · 0 评论 -
Hibernate Tool: hbm2java or hbm2ddl
Hibernate为了简化开发,给我们提供了四种工具,hbm2java,hbm2ddl,XDoclet,Middlegen.其中我觉得hbm2java(根据映射文件生成JAVA源文件),hbm2ddl(根据映射文件生成数据库文件,这两个工具非常实用.还有XDoclet(根据带有XDoclet标记的JAVA源文件生成映射文件).Middlegen(根据数据库文件生成映射文件的工具也不错.不过我没怎原创 2008-01-10 14:14:00 · 639 阅读 · 0 评论 -
hibernate用hbm2java给pojo增加serialVersionUID
Hibernate 3.2.x 工具中hbm2java生成的pojo类总是类似下面:public class Child implements java.io.Serializable { private int cid; private String childName; public int getCid() { return this.cid; }原创 2008-01-10 15:01:00 · 1152 阅读 · 0 评论 -
h3
这些任务可以通过Ant构建完成,Hibernate提供了Ant Tasks及其构建脚本.由于Hibernate从2到3进行了重大重构,且包重新做了组织,因此Ant构建脚本也发生了巨大变化.在2中脚本样式为: default="db" basedir="."> fork="yes">原创 2008-01-10 14:55:00 · 683 阅读 · 0 评论 -
Hibernate动态模型
Hibernate的动态模型为我们动态改动表结构带来了方便, 个人认为这一点非常有价值, 现在的企业级应用系统越来越强调用户可定制性, hibernate的这一点使用户自定义字段或自定义表成为可能 .Hibernate也支持动态模型 (在运行期使用Map的Map)和象DOM4J的树模型那 样的实体表示。使用这种方法,你不用写持久化类,只写映射文件就行了。在映射文件中用entity-nam原创 2008-01-11 10:45:00 · 1904 阅读 · 2 评论 -
关于Hibernate一个配置参数hibernate.hbm2ddl.auto
EJB持久配置文件如下:http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/per原创 2008-01-14 13:24:00 · 11065 阅读 · 2 评论 -
hibernate 批量查询
查询性能往往是系统性能表现的一个重要方面,查询机制的优劣很大程度上决定了系统的整体性能。这个领域往往也存在最大的性能调整空间。 hibernate2中Session.find()对应于3中的session.createQuery().list();hibernate2中Session.iterate()对应于3中的session.createQuery().iterate();find和ite原创 2008-01-17 09:46:00 · 2009 阅读 · 0 评论 -
hibernate 缓存
内部缓存 (session缓存,一级缓存,事务缓存) 通过一系列Map类型来维护缓存实例 若加载某个数据对象,Session会首先根据所要加载的数据类和ID从entitiesByKey的map中寻找,若查不到才转向数据库。 内部缓存一般hibernate自己维护,若手动干预。可: 1.session.evict,从map中清除特定的对象 2.session.cl原创 2008-01-17 10:40:00 · 551 阅读 · 0 评论 -
Hibernate笔记
1、Object Relation Mapping 持久化类与关系表对应,持久化类实例与表中一行记录对应。2、Hibernate核心接口 访问数据库接口:Session、Transation、Query、Criteria 配置Hibernate接口:Configuration Configuration --(实例化创建)-->SessionFaction--(实例化)-->Ses原创 2008-01-22 13:35:00 · 525 阅读 · 0 评论 -
Hibernate的createSQLQuery查询的问题
我们用HQL进行子查询的时候,如select * from Tree where pid in (select id fromTree,此时HIBERANTE就会报错,说什么*号错误之类的。但如果将*改为Tree类里的所有子段时就不会有问题了。就会像平时一样第一行数据返回一个Object[],然后你再根据Tree类里字段对Object[]数组里的值进行转换。这样一来比较麻烦。今天发现如果原创 2009-11-07 16:32:00 · 857 阅读 · 0 评论 -
hibernate映射数据库表如何使表中字段默认值生效(如更新当传来的值为null时不替换表中值)
问题描述: hibernate技术中对应数据库中每一个表,都会有一个映射文件与之对应,此文件描述数据库表中每一个字段的类型、长度、是否可空等属性。在进行表中记录的插入(更新)操作时,hibernate会根据映射文件中的描述自动生成一个包含所有字段的插入(更新)sql语句,此时如果映射文件中某字段的值为空(NULL)而其在数据库表中定义的默认值不为空,hibernate会将空值原创 2009-11-07 16:38:00 · 2422 阅读 · 1 评论 -
hibernate 中createQuery与createSQLQuery
2009-4-25 8:12:34 org.apache.catalina.core.ApplicationContext log信息: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.miracle.dm.doc.catalog.model.DocCatalogInfo原来的查询语句:原创 2009-11-07 16:50:00 · 727 阅读 · 0 评论 -
hibernate------hql总结
v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);} Normal 0 false 7.8 磅原创 2009-11-07 16:40:00 · 471 阅读 · 0 评论 -
hibernate怎么实现一个类对象map多个表名
1) 映射文件在一个映射文件中定义class和table的对应关系,用entity-name来区分不同的映射:…………(2)在API调用、HQL语句中使用entity-name,而不是class名称。get(“testA”, id)delete(“testA”, object)save(“testA”, object)saveOrUpd原创 2009-11-07 16:33:00 · 1266 阅读 · 1 评论 -
下拉列表select动态初始化 (JSP页面)
下拉列表select动态初始化 (JSP页面) document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text原创 2009-11-07 16:55:00 · 3300 阅读 · 0 评论 -
继承映射(Inheritance Mappings)
第 10 章 继承映射(Inheritance Mappings)10.1. 三种策略Hibernate支持三种基本的继承映射策略: 每个类分层结构一张表(table per class hierarchy) 每个子类一张表(table per subclass原创 2008-02-01 12:44:00 · 592 阅读 · 0 评论 -
与对象共事
第 11 章 与对象共事Hibernate是完整的对象/关系映射解决方案,它提供了对象状态管理(state management)的功能,使开发者不再需要理会底层数据库系统的细节。 也就是说,相对于常见的JDBC/SQL持久层方案中需要管理SQL语句,Hibernate采用了更自然的面向对象的视角来持久化Java应用中的数据。 换句话说,使用Hibernat原创 2008-02-01 12:43:00 · 540 阅读 · 0 评论 -
事务和并发
第 12 章 事务和并发Hibernate的事务和并发控制很容易掌握。Hibernate直接使用JDBC连接和JTA资源,不添加任何附加锁定 行为。我们强烈推荐你花点时间了解JDBC编程,ANSI SQL查询语言和你使用 的数据库系统的事务隔离规范。Hibernate只添加自动版本管理,而不会锁 定内存中的对象,也不会改变数据库事务的隔离级别。基本上,使用 Hi原创 2008-02-01 12:41:00 · 602 阅读 · 0 评论 -
使用JBossCache作为Hibernate的二级缓存
使用JBossCache作为Hibernate的二级缓存,因为JBossCache支持Transactional的缓存策略(Strategy),而且支持Cluster,Cluster还支持Invalidation的方式,比Replication方式更好,对两种方式同时支持同步和异步,还有其他很多特性,比OSCache好得多。由于我们是把Hibernate作为服务配置的,所以CacheProvid原创 2008-01-24 10:28:00 · 1197 阅读 · 0 评论 -
hibernate二级缓存配制
二级缓存配置: 1、首先要打开二级缓存,在hibernate.cfg.xml中添加如下配置: property name="hibernate.cache.use_second_level_cache">trueproperty> 2、Hibernate的二级缓存使用第三方的缓存工具来实现,所以我们需要指定Hibernate使用哪个 缓存工具。如下转载 2008-01-24 10:26:00 · 508 阅读 · 0 评论 -
Hibernate 3.x过滤器地高级运用
Hibernate3的过滤器可以进行预定义,并可绑定在类和集合层。那么什么叫预定义过滤器呢?就是可以定义象“where”子句的限制性子句,但这些子句是相对类和不同集合的元素的。除了这些过滤器条件可以被参数化外。系统还能决定在运行是指定的过滤器是否应该被打开以及什么值被传入过滤器参数。 一、什么时候使用过滤器为了解释为什么使用过滤器,下面让我们先来看一个例子。假设有一个管理用户信息的Web应原创 2008-01-24 13:22:00 · 634 阅读 · 0 评论 -
Java学习之hibernate配置要点详谈
1.两种配置文件: A.hibernate.cfg.xml和B.hibernate.properties A中可含映射文件的配置,而B中hard codes加映射文件。 A.Configuration config=new Configuration().config(); B. Configuration config=new Configuration(); config原创 2008-01-24 17:15:00 · 508 阅读 · 0 评论 -
Native SQL查询
你也可以使用你的数据库的Native SQL语言来查询数据。这对你在要使用数据库的某些特性的时候(比如说在查询提示或者Oracle中的 CONNECT关键字),这是非常有用的。这就能够扫清你把原来直接使用SQL/JDBC 的程序迁移到基于 Hibernate应用的道路上的障碍。 Hibernate3允许你使用手写的sql来完成所有的create,update,d原创 2008-02-01 12:31:00 · 875 阅读 · 0 评论 -
HQL: Hibernate查询语言
第 15 章 HQL: Hibernate查询语言Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。 15.1. 大小写敏感性问题除了Java类与属性的名称外,查询语句对大小原创 2008-02-01 12:38:00 · 445 阅读 · 0 评论 -
批量处理(Batch processing
用Hibernate将 100 000 条记录插入到数据库的一个很自然的做法可能是这样的Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();for ( int i=0; i<100000; i++ ) { Customer customer = n原创 2008-02-01 12:39:00 · 1212 阅读 · 1 评论 -
关联关系映射
第 8 章 关联关系映射8.1. 介绍关联关系映射通常情况是最难配置正确的。在这个部分中,我们从单向关系映射开始,然后考虑双向关系映射,由浅至深讲述一遍典型的案例。在所有的例子中,我们都使用 Person和Address。 我们根据映射关系是否涉及连接表以及多样性来划分关联类型。 在传统的数据建模中,允许为Null值的原创 2008-02-01 12:45:00 · 609 阅读 · 0 评论 -
对象/关系数据库映射基础(Basic O/R Mapping)
第 6 章 对象/关系数据库映射基础(Basic O/R Mapping)6.1. 映射定义(Mapping declaration)对象和关系数据库之间的映射通常是用一个XML文档(XML document)来定义的。这个映射文档被设计为易读的, 并且可以手工修改。映射语言是以Java为中心,这意味着映射文档是按照持久化类的原创 2008-02-01 12:48:00 · 823 阅读 · 0 评论 -
hibernate目录
目录前言 1. 翻译说明 2. 版权声明1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class 2.2.2. 映射文件 2.2.3. Hibernate配置 2原创 2008-02-01 12:51:00 · 572 阅读 · 0 评论 -
命名查询的sql语句的问题
import java.util.HashSet;import java.util.Set;public class Person ...{ private Long id; private int age; private String firstName; private String lastName; private Set events = new Ha原创 2008-02-01 14:08:00 · 1678 阅读 · 0 评论 -
示例:父子关系(Parent Child Relationships)
第 22 章 示例:父子关系(Parent Child Relationships)刚刚接触Hibernate的人大多是从父子关系(parent / child type relationship)的建模入手的。父子关系的建模有两种方法。由于种种原因,最方便的方法是把Parent和Child都建模成实体类,并创建一个从Parent指向Child的关联,对新手来说原创 2008-02-01 12:35:00 · 2636 阅读 · 0 评论 -
集合类(Collections)映射
第 7 章 集合类(Collections)映射7.1. 持久化集合类(Persistent collections)(译者注:在阅读本章的时候,以后整个手册的阅读过程中,我们都会面临一个名词方面的问题,那就是“集合”。"Collections"和"Set"在中文里对应都被翻译为“集合”,但是他们的含义很不一样。Collect原创 2008-02-01 12:46:00 · 1161 阅读 · 0 评论 -
XML映射
19.1. 用XML数据进行工作Hibernate使得你可以用XML数据来进行工作,恰如你用持久化的POJO进行工作那样。解析过的XML树 可以被认为是另外一种在对象层面上代替POJO来表示关系型数据的途径. Hibernate支持采用dom4j作为操作XML树的API。你可以写一个查询从数据库中检索出 dom4j树,随后你对这颗树做的任何修改都将自动同步回原创 2008-02-01 12:32:00 · 1534 阅读 · 0 评论 -
最佳实践(Best Practices)
设计细颗粒度的持久类并且使用来实现映射。 使用一个Address持久类来封装 street, suburb, state, postcode. 这将有利于代码重用和简化代码重构(refactoring)的工作。 对持久类声明标识符属性。 Hibernate中标识符属性是可选的,不过有很多原因来说明你应该使用标识符属性。我们建议标识符应该是“人造”的(自动生成,不涉及业务含义)。虽然原生原创 2008-02-01 12:37:00 · 817 阅读 · 0 评论 -
拦截器与事件(Interceptors and events)
应用程序能够响应Hibernate内部产生的特定事件是非常有用的。这样就允许实现某些通用的功能 以及允许对Hibernate功能进行扩展。 13.1. 拦截器(Interceptors) Interceptor接口提供了从会话(session)回调(callback)应用程序(application)的机制, 这种回调机制可以允许应用程序在持久化对象被保存原创 2008-02-01 12:39:00 · 714 阅读 · 0 评论 -
开发类型的Spring中的HibernateTemplate
相信使用过Spring +Hibernate开发过的人,在写DAO的时候都使用过Spring的HibernateDaoSupport类,然后在实现的时候就可以很轻松的使用getHibernateTemplate()方法之后就可以调用save()、delete()、update()等Hibernate的Session的操作,很简单。比如:getHibernateTemplate()原创 2009-11-09 11:18:00 · 632 阅读 · 0 评论