Hibernate
吃胖点儿
“学会求知,学会做事,学会共处,学会做人。”致自己共勉 。技术探讨可以加281954986
展开
-
Hibernate多次映射同一个类
对特定的持久化类,映射多次是允许的。这种情形下,你必须指定entity name来区别不同映射实体的对象实例。(默认情况下,实体名字和类名是相同的。) Hibernate在操作持久化对象、编写查询条件,或者把关联映射到指定实体时,允许你指定这个entity name(实体名字)。<class name="Contract" table="Contracts" entity原创 2012-12-23 17:57:36 · 2257 阅读 · 1 评论 -
Hibernate超凡的抓取策略
1. 抓取策略(Fetching strategies)抓取策略(fetching strategy) 是指:当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候, Hibernate如何获取关联对象的策略。抓取策略可以在O/R映射的元数据中声明,也可以在特定的HQL 或条件查询(Criteria Query)中重载声明。Hibernate原创 2013-01-04 19:56:41 · 3327 阅读 · 3 评论 -
Hibernamte一对一经典剖析
持久化对象之间一对一的关联关系是通过one-to-one元素定义的。<one-to-one name="propertyName" class="ClassName" cascade="cascade_style" constrained="true|false" fetch="join|select"原创 2012-12-21 11:11:16 · 512 阅读 · 0 评论 -
Hibernate多对一
通过many-to-one元素,可以定义一种常见的与另一个持久化类的关联。 这种关系模型是多对一关联(实际上是一个对象引用-译注):这个表的一个外键引用目标表的 主键字段。<many-to-one name="propertyName" column="column_name" class="ClassName" ca原创 2012-12-21 11:14:43 · 701 阅读 · 0 评论 -
Hibernate的Property解析
元素为类定义了一个持久化的,JavaBean风格的属性。<property name="propertyName" column="column_name" type="typename" update="true|false" insert="true|false" formula="ar原创 2012-12-21 11:20:30 · 10965 阅读 · 0 评论 -
Hibernate嘻哈的经典总结(34)
• 1.说出orm的作用• 即对象关系映射。它是一种用来完成对象模型到关系模型的映射技术。• 就是把应用程序中的对象数据持久化到关系数据库的表的一种技术。• ORM能利用面向对象的思想开放基于关系型数据库的应用程序,它的主要工作是将对象数据保存到关系数据库的表中,以及将关系数据库表中数据读入到对象中。•原创 2013-01-05 17:39:07 · 769 阅读 · 0 评论 -
项目——Hibernate常见异常
异常1:ids for this class must be manually assigned before calling save() id列不是自动生成,而你的id不允许为空造成的这样设置设置hibernate就认为id不需要它来指定,把设置id的权限交给了你。而你在不能为空的地方设置null....改成下面转载 2013-01-26 15:20:51 · 471 阅读 · 0 评论 -
Hibernate的查询 标准(Criteria)查询
一个简单例子:Java代码 @SuppressWarnings("unchecked") public void searchByPropertys() { Session session = this.getSession(); Criteria crit = session.createCriteria(Conft.class原创 2013-02-01 12:31:39 · 1343 阅读 · 0 评论 -
Hibernate中的查询方法和返回值类型
Hibernate的查询分几种 HQL,QBC(QBE),SQL HQL查询 HQL是基于面向对象的,里面没有表,也没有列,有类和属性 直接以from开头,表示全部选择 从Hibernate3.1可以执行修改和删除 from Emp eg1. 带?参数查询 Session session = HibernateSessionFactory.getSes原创 2013-02-01 12:10:54 · 4884 阅读 · 0 评论 -
Hibernate中延迟加载的介绍
Hibernate延迟加载:延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。下面我们就分别介绍这些种类的Hibernate延迟加载的细节。A、Hibernate延迟加载之实体对象的延迟加载:原创 2013-01-05 16:48:18 · 545 阅读 · 0 评论 -
Hibernate中的持久化对象(精讲)
持久化对象的状态:瞬时对象(Transient Objects):使 用new操作符初始化的对象不是立刻就持久化的。他们的状态是瞬时的,也就是说他们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任 何其他对象所引用),他们的状态将会丢失,并由垃圾回收机制回收。临时对象的特征。临时对象具有以下特征:(1) 不处于Session的缓存中,也可以说,不被任何一个Sess原创 2013-01-05 11:56:43 · 672 阅读 · 0 评论 -
Hibernate中体系结构的概况(Overview)
一个非常简要的Hibernate体系结构的概要图: 从这个图可以看出,Hibernate使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象)。我们来更详细地看一下Hibernate运行时体系结构。由于Hibernate非常灵活,且支持多种应用方案, 所以我们这只描述一下两种极端的情况。“轻型”的体系结构方案,要求应用程序提供自己的JDBC 连接并管理自己的事原创 2012-12-23 18:00:56 · 642 阅读 · 0 评论 -
Hibernate映射Person类
1.3.1. 映射Person类最初简单的Person类: package events;public class Person { private Long id; private int age; private String firstname; private String lastname; public P原创 2012-12-23 17:55:35 · 811 阅读 · 0 评论 -
Hibernate入门
l Hibernatel JDBC数据库连接JDBC的优点 直接底层操作,提供了很简单、便捷的访问数据库的方法,跨平台性比较强。灵活性比较强,可以写很复杂的SQL语句。 JDBC的缺点1.因为JAVA是面向对象的,JDBC没有做到使数据能够面向对象的编程,使程序员的思考仍停留在SQL语句上。2.操作比较繁琐,很多代码需要重复原创 2012-12-17 14:46:09 · 602 阅读 · 0 评论 -
Hibernate优化方法解析
Hibernate优化方法一:批量修改和删除在Hibernate 2中,如果需要对任何数据进行修改和删除操作,都需要先执行查询操作,在得到要修改或者删除的数据后,再对该数据进行相应的操作处理。在数据量少的情况下采用这种处理方式没有问题,但需要处理大量数据的时候就可能存在以下的问题:◆占用大量的内存。◆需要多次执行update/delete语句,而每次执行只能处理一条数据。原创 2013-01-05 17:25:18 · 470 阅读 · 0 评论 -
Hibernare事物的那些事
1.阐述事务管理的步骤 1、 JDBC事务JDBC 事务是用 Connection对象控制的。JDBC Connection接口(java.sql.Connection )提供了两种事务模式:自动提交和手工提交。java.sql.Connection 提供了以下控制事务的方法:public void setAutoCommit(boolean原创 2013-01-04 19:34:23 · 566 阅读 · 0 评论 -
Hibernate神秘的二级缓存
二级缓存(The Second Level Cache) Hibernate的Session在事务级别进行持久化数据的缓存操作。 当然,也有可能分别为每个类(或集合),配置集群、或JVM级别(SessionFactory级别)的缓存。 你甚至可以为之插入一个集群的缓存。注意,缓存永远不知道其他应用程序对持久化仓库(数据库)可能进行的修改 (即使可以将缓存数据设定为定期失效)。原创 2013-01-04 19:52:32 · 612 阅读 · 0 评论 -
Hibernate简单的管理缓存
管理缓存(Managing the caches) 无论何时,当你给save()、update()或saveOrUpdate()方法传递一个对象时,或使用load()、get()、list()、iterate() 或scroll()方法获得一个对象时, 该对象都将被加入到Session的内部缓存中。当随后flush()方法被调用时,对象的状态会和数据库取得同步。 如果你不希望此原创 2013-01-04 20:04:02 · 526 阅读 · 0 评论