Hibernate
文章平均质量分 83
astro_boy
这个作者很懒,什么都没留下…
展开
-
Hibernate框架ORM的实现原理(资料)
1.什么是ORMORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。2.什么是Hibernate对于Hibernate的称呼有很多,比如工具、技术、框架以及解决方案等,这些...原创 2009-09-30 13:35:46 · 71 阅读 · 0 评论 -
hibernate中lazy的使用
lazy,延迟加载Lazy的有效期:只有在session打开的时候才有效;session关闭后lazy就没效了。lazy策略可以用在:* <class>标签上:可以取值true/false* <property>标签上,可以取值true/false,这个特性需要类增强* <set>/<list>等集合上,可以取值为true/f...原创 2009-12-18 22:00:55 · 82 阅读 · 0 评论 -
Hibernate事务和并发控制
1. 事务介绍:1.1. 事务的定义:事务就是指作为单个逻辑工作单元执行的一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性。1.2. 事务具有ACID属性:o 原子性(Atomic):事务由一个或多个行为绑在一起组成,好像是一个单独的工作单元。原子性确保在事务中的所有操作要么都发生,要么都不发生。o 一致性(Consistent):...原创 2010-05-07 10:21:44 · 77 阅读 · 0 评论 -
高并发网站的架构
我在CERNET做过拨号接入平台的搭建,而后在Yahoo&3721从事过搜索引擎前端开发,又在MOP处理过大型社区猫扑大杂烩的架构升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大型网站应对高负载和并发的解决方案上有一些积累和经验,可以和大家一起探讨一下。 一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效...原创 2010-05-07 11:07:14 · 66 阅读 · 0 评论 -
Hibernate集合映射
准备找工作,重新整理一下Hibernate,今天做了集合映射的测试,以前是使用MyEclipse自动生成,今天开始手动配置。 在手动配置的过程中还真是出了不少问题,少包,漏写这漏写那,不过还好,很快都把错误排除了。 其中这个问题记录一下: No CurrentSessionContext configured!" 异常 之前都是getSession()或用spring整合做web,所以没有注意到...原创 2010-06-13 12:49:04 · 61 阅读 · 0 评论 -
hibernate继承关系映射
hbn 的继承映射关系有这几种: 1. 继承关系类共同使用一个表; 2. 每个子类一个表(mapping全); 3. 每个具体内一个表(mapping只有父类)。继承关系描述: Animals父类 -- Bird 、Reptiles; Animals.javapackage TableBean;/** 动物父类* @hibernate.class * table="ani...原创 2010-06-13 16:58:10 · 71 阅读 · 0 评论 -
Hibernate一对多(单向)
[正文]: Hibernate一对多关联,例如一个用户有多张银行卡(只考虑用户到银行卡的单向一对多关联)。由于是学习Hibernate原理,并没有使用工具自动生成代码等。 单向一对多关联只需要在"一方"进行配置即可,"多方"无需额外配置。a.Java程序中所要做的一对多:public class User{ ... private Set<Card> cards...原创 2010-09-09 14:31:01 · 152 阅读 · 0 评论 -
Hibernate 关联
1、hibernate多对一关联映射 关联映射的本质: * 将关联关系映射到数据库,所谓的关联关系是对象模型在内存中的一个或多个引用 User.java里面包含Group.java定义的group应用Java代码 User.java: private int id; private String name; ...原创 2010-09-09 15:24:59 · 78 阅读 · 0 评论 -
Hibernate 关联关系 总结
1.一对多的单向关联关系 配置单向的一对多关系是从"一"这一方开始的.通过one-to-many来实现.由于在一对多的关系中,需要在一方持有多方的对象,因此需通过set或 bag来实现.如:一个教师可拥有多名学生:教师配置文件如下: <?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-/...原创 2010-09-09 15:27:09 · 74 阅读 · 0 评论 -
Hibernate使用count(*)取得表中记录总数(跨Hibernate3.x版本问题)
Java代码 /** * @TODO:查询某一年度的所有计划数量 */ public int findCountByYear(String currYear) { String hqlString = "select count(*) from WaterPlan as p where p.planYear ='"+currYear+...原创 2010-06-22 17:13:05 · 546 阅读 · 0 评论 -
Hibernate中No row with the given identifier exists问题的原因及解决
产生此问题的原因: 有两张表,table1和table2.产生此问题的原因就是table1里做了关联<one-to-one>或者<many-to-one unique="true">(特殊的多对一映射,实际就是一对一)来关联table2.当hibernate查找的时候,table2里的数据没有与table1相匹配的,这样就会...原创 2010-06-23 09:54:40 · 78 阅读 · 0 评论 -
hibernate工具箱—根据映射文件自动建表
public class ExportDB { public static void main(String[] args) { //读取hibernate.cfg.xml文件 Configuration cfg=new Configuration().configure(); SchemaEx...原创 2009-12-04 12:08:39 · 80 阅读 · 0 评论 -
关联加载对象时的报错-----a different object with the same identifier value
因为在hibernate中同一个session里面有了两个相同标识但是是不同实体,当这时运行saveOrUpdate(object)操作的时候就会报这个错误。 所以产生这个错误的直接原因有很多。 我做的这个项目的产生错误是因为: 数据关联加载。 详细的意思如下: Course --关联-- Major (并自身关联自身--先修课程) 有Cours...2009-11-18 16:13:02 · 127 阅读 · 0 评论 -
Hibernate延迟加载机制
延迟加载: 延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。下面我们就分别介绍这些种类的延迟加载的细节。A、实体对象的延迟加载: 如果想对实体对象使用延迟加载,必须要在实体的映射配置文件中进行相应的配置,如...原创 2009-09-30 13:40:58 · 51 阅读 · 0 评论 -
Hibernate 3注释简介
在过去几年里,Hibernate不断发展,几乎成为Java数据库持久性的事实标准。它非常强大、灵活,而且具备了优异的性能。在本文中,我们将了解如何使用Java 5 注释来简化Hibernate代码,并使持久层的编码过程变得更为轻松。 传统上,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载。创建这些映射有很多方法,可以从已有数...原创 2009-10-13 14:32:43 · 64 阅读 · 0 评论 -
hibernate-annotations
CascadeType.PERSIST (级联新建) CascadeType.REMOVE (级联删除) CascadeType.REFRESH (级联刷新) CascadeType.MERGE (级联更新)中选择一个或多个。 CascadeType.ALL 有时候CascadeType不行,解决方法:利用hibernate的自定义的级联删除,不要使用jpa的 ...原创 2009-11-02 16:00:58 · 158 阅读 · 0 评论 -
Hibernate 中级联操作 cascade 选项
none :在保存、更新或删除对象时,忽略其他关联的对象。他是 cascade 属性的默认值。save-update :当通过 Session 的 save() 、 update() 以及 saveOrUpdate() 方法保存或更新当前对象时,级联保存所有关联的新建的临时对象,并且级联更新所有关联的游历对象。delete :当通过 Session 的 delete() 方法删除当前的对象...原创 2009-11-02 16:35:31 · 106 阅读 · 0 评论 -
hibernate3的注解映射学习
注解映射必须满足两大条件:Hibernate3.2以上版本和JSEE 5。 @Entity 类注释,所有要持久化的类都要有Java代码 @Entity public class Org implements java.io.Serializable { } @Entitypublic class Org implements java....原创 2009-11-02 16:41:52 · 100 阅读 · 0 评论 -
Hibernate Annotation几种关联映射
Hibernate Annotation几种关联映射一对一(One-To-One)使用@OneToOne注解建立实体Bean之间的一对一关联。一对一关联有三种情况:(1).关联的实体都共享同样的主键,(2).其中一个实体通过外键关联到另一个实体的主键(注意要模拟一对一关联必须在外键列上添加唯一约束),(3).通过关联表来保存两个实体之间的连接关系(要模拟一对一关联必须在每一个外键上添加唯一...原创 2009-11-02 17:01:07 · 83 阅读 · 0 评论 -
Hibernate3.x总结
Hibernate不是盏省油的灯,也不是想像的射来射去很简单的事。有很多细节处理不好会让你很不舒服的,这方面最突出的表现在两方面:一是事务管理,是JTA事务还是JDBC事务?幸亏有了Spring和J2EE容器;二是胡乱映射,模型关系建立不合理或者错误导致,或者是映射策略和技术不过关导致。这样的最终结果是抛出一堆HibernateException,摸不着头脑。下面是我实践中的一些总结作为备忘录写出...原创 2009-11-18 14:29:29 · 70 阅读 · 0 评论 -
写得很不错的-Hibernate中的实体状态(一)
持久层的解决方案有许多,尤其以持久层框架的出现为持久层的开发带来福音。本章以Hibernate和Spring两个最流行的框架来讨论持久层问题,包括Hibernate实体状态、Hibernate关联关系、Hibernate连接表、Spring与JDBC、Spring与Hibernate、Spring与IBatis.6.1 问题:Hibernate中的实体状态6.1.1 怎样理解实体状态程序员M在使用...原创 2009-11-18 15:04:03 · 105 阅读 · 0 评论 -
写得很不错的-Hibernate中的实体状态(二)
(2)session.merge ()方法该方法将修改表中记录,其所需要的实体状态为脱管状态,但是注意,它并不影响调用方法前后的状态,也即该实体依然是脱管状,见例6.4。例6.4:session.merge ()方法对状态的变化 public void run() { //创建UserInfo实例 UserInfo userInfo ...原创 2009-11-18 15:08:03 · 75 阅读 · 0 评论 -
update/saveOrUpdate/merge
通常下面的场景会使用update()或saveOrUpdate(): 程序在第一个session中加载对象 该对象被传递到表现层 对象发生了一些改动 该对象被返回到业务逻辑层 程序调用第二个session的update()方法持久这些改动 saveOrUpdate()做下面的事: 如果对象已经在本sessio...原创 2009-11-18 15:28:36 · 80 阅读 · 0 评论 -
hibernate n+1问题
Hibernate中常会用到set,bag等集合表示1对多的关系, 在获取实体的时候就能根据关系将关联的对象或者对象集取出, 还可以设定cacade进行关联更新和删除。这不得部说hibernate的orm做得很好,很贴近oo的使用习惯了。 但是对数据库访问还是必须考虑性能问题的, 在设定了1对多这种关系之后, 查询就会出现传说中的n+1问题。 1)1对多,在1方,查找得到了n个对象, 那么又需要将...原创 2010-10-21 11:05:43 · 90 阅读 · 0 评论