
Hibernate技术
iteye_19657
这个作者很懒,什么都没留下…
展开
-
Hibernate的映射类型
Hibernate映射类型分为两种:内置的映射类型和客户化映射类型。内置映射类型负责把一些常见的Java类型映射到相应的SQL类型;此外,Hibernate还允许用户实现UserType或CompositeUserType接口,来灵活地定制客户化映射类型1.内置映射类型 1).Java基本类型的Hibernate映射类型Java类型Hibernate映射类型标准SQL类型...原创 2009-05-21 09:27:27 · 86 阅读 · 0 评论 -
Hibernate:类继承的实现方式(二)--父子类各自一个表
将继承链中的各个类映射到数据库中的一个单独的表中domain对象和测试代码同(一)[color=red]可以看到在关系模型中比较合理:Employee表中没有空字段,但是查询效率肯定会受影响[/color]映射文件如下:[code="java"] ...2009-06-04 10:41:55 · 151 阅读 · 0 评论 -
Hibernate:类继承的实现方式(三)--鉴别器与内连接相结合
当子类中有的有很多自己特有的属性,而部分子类有较少的自己的属性。这时候应该将两种方式结合起来。domain对象和测试代码同(一)映射文件如下:[code="java"] [/code]执行的...2009-06-04 10:49:21 · 138 阅读 · 0 评论 -
Hibernate:类继承的实现方式(四)--每个具体类映射一张独立表
[color=red]这种方式会把继承链的所有类保持到数据库中单独的表中,而且标语表之间没有关联关系!![/color]domain对象与测试代码同(一)[code="java"] [/code]执行的sql语句:[code="ja...2009-06-04 10:58:49 · 114 阅读 · 0 评论 -
load方法的懒加载及原理分析
[size=medium]懒加载:[/size][color=red] load方法与get方法的区别:1.读取时机不同(当lazy=true的时候) load是采用延迟机制(load语句不读库,等使用非主键时才去读库),而get不采用延迟机制(get语句时马上读库);2.搜索不到数据时的情况 当搜索的数据不存在的时候,load依然会返回一个对象,在你使用该...2009-06-04 11:09:55 · 203 阅读 · 0 评论 -
one-to-one的懒加载及原理分析
Lazy=”” :告诉hibernate什么时候抓取1 false :立即抓取,查询此对象同时查询关联对象2 proxy :不立刻抓取关联对象3 noFetch:告诉Hibernate通过什么方式抓取1 select (缺省) :通过select抓取(相关联的两个对象通过两条select 语句查询)2 join :通过join方式将关联的数据都查出来(效率比较高)||此时l...2009-06-04 13:57:08 · 302 阅读 · 0 评论 -
one-to-many的懒加载及原理分析
如果是一对多,多对一,甚至是多对多那效率就差别大了!!如果一对多lazy=”false”或者fetch=”join”会同时查询出所有关联的对象,对数据库和对网络影响将是很大地。(lazy=”false” 采用多条查询语句,比如,一对100:会有可能101条select查询语句;fetch=”join” 会同时访问两个表的)但是代理对象调用getClass()和getId()方法的时候不会立...2009-06-04 14:42:33 · 303 阅读 · 0 评论 -
Hibernate:缓存设置
[color=red] 缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。 缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的...2009-06-04 16:38:11 · 122 阅读 · 0 评论 -
hibernate的各种保存方式的区别
hibernate的保存hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别:一、预备知识:在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient、persistent、detached下边是常见的翻译办法:transient:瞬态或者自由态persistent:持久化状态detached:脱管状态或...2009-06-05 08:59:44 · 126 阅读 · 0 评论 -
映射文件class元素的dymanic-insert和dymanic-update的作用
SQL update语句是预先生成的,如果加上dynamic的话,每次update的时候需要扫描每个属性的更改,然后生成update,效率会稍微有点影响。 如果不是有特殊的需求,默认就好了。...2009-06-05 09:36:44 · 111 阅读 · 0 评论 -
关于Hibernate一个配置参数hibernate.hbm2ddl.auto
[code="java"] java:/EJBDBSOURCE [/code]通过查资料,在别人整理出的Spring + JPA(Hibernate实现),从网上copy了一段Hibernate连接参数的配置。[code="java"] [/code] ...2010-03-02 08:43:31 · 174 阅读 · 0 评论 -
Hibernate:类继承的实现方式(一)--父子类在同一个表中
Hibernate对继承关系的对象的处理分为多种形式:第一种:继承链上的所有对象存放在一个表中[color=red]这种方式的缺陷:每次增加一个子类都要改动表结构!!而且,增加的字段不能有非空约束[/color]domain对象:[code="java"]public class Employee { private Integer id; priva...2009-06-04 10:19:57 · 155 阅读 · 0 评论 -
cascade和inverse
Cascade与inverse这两个属性都用于一对多或者多对多的关系中。而inverse特别是用于双向关联关系,在单向关联关系中我们并不需要。cascade代表是否执行级联操作,inverse代表是否由己方维护关系。cascade:cascade的属性有:1·all:所有操作情况下都进行级联操作,即save-update和delete2·none:所有情况下均不进行级联...2009-06-04 09:10:21 · 95 阅读 · 0 评论 -
hibernate中映射blob数据类型的一个例子(使用blob映射)
java 代码[code="java"] 2public class User implements java.io.Serializable { 3 4 5 // Fields 6 7 private long id; 8 private String name; 9 pri...2009-05-26 09:21:22 · 182 阅读 · 0 评论 -
Hibernate的映射类型
Hibernate映射类型分为两种:内置映射类型和客户化映射类型。内置映射类型负责把一些常见的Java类型映射到相应的SQL类型;此外,Hibernate还允许用户实现UserType或CompositeUserType接口,来灵活地定制客户化映射类型。客户化类型能够把用户定义的Java类型映射到数据库表的相应字段。 一、Hibernate的内置映射类型1、Java基本类型的Hibern...2009-05-26 09:28:00 · 75 阅读 · 0 评论 -
Hibernate:一对一(1)
Hibernate中一对一关联两种处理方式之一:参照表主键参照被参照表主键POJO对象被参照对象[code="java"]public class Person { private Integer id; private String name; private IdCart idCart; public Integer getId() {...2009-06-03 10:40:20 · 83 阅读 · 0 评论 -
Hibernate:多对一
Hibernate对多对一有两种,分为单向和双向。一般都是采用双向[code="java"]public class User1 { private int id; private String name; private Department department; public Department getDepartment() { return depar...2009-06-03 11:05:37 · 74 阅读 · 0 评论 -
Hibernate:一对一(2)
Hibernate处理一对一的另外一种方式是:将多对一加上唯一限制!改成基于外键的一对一:从表多加一列做外键,但是这时候从表可以有多个外键相同的记录,就变成了多对一!!但是我们可以在从表对应的对象映射上加一个唯一限制!unique=”true”就保证一对一了这时的对象不用改动,改动从对象的映射文件和主对象的映射文件[code="java"] ...2009-06-03 11:11:23 · 81 阅读 · 0 评论 -
Hibernate:多对多
Hibernate处理多对多的情况,在操作和性能方面都不太理想,所以多对多的映射使用较少,实际使用中最好转换成一对多的对象模型:Hibernate会为我们创建中间关联表,转换成两个一对多。POJO对象:[code="java"]import java.util.Set;public class Student { private Integer id; pri...2009-06-03 14:10:45 · 80 阅读 · 0 评论 -
将一个对象(组件)作为属性,但是不想建立这个表
如果对象的某个属性为一个对象,而且不想单独对该对象建立一个表,这时Hibernate是这样处理的:[code="java"]public class Name { private String firstName; private String SecondName; public String getFirstName() { return firstName...2009-06-03 14:38:31 · 70 阅读 · 0 评论 -
关联关系的总结
查询的时候出现sql语句的条数:Hibernate查询输出sql语句条数,一般是这样的,除了一对一之外,其它关联查询分为两句select语句,一句查询自己,另一句查询关联对象;而一对一查询是一条select语句,使用外连接一次查询两个表插入数据的时候出现sql语句的条数这个跟插入数据的数量,以及关联对象插入的顺序有关,可能出现update语句...2009-06-03 14:50:02 · 101 阅读 · 0 评论 -
POJO对象与映射文件 : 集合映射
集合属性大致有两种:第一种是单纯的集合属性,如像 List、Set 或数组等集合属性;另一种是Map结构的集合属性,每个属性值都有对应的Key映射。 集合映射的元素大致有如下几种:List: 用于映射 List 集合属性 Set: 用于映射 Set 集合属性 Map: 用于映射 Map 集合性 Array: 用于映射数组集合属性 Bag: 用于映射无序集合 ...2009-06-03 15:36:42 · 236 阅读 · 0 评论 -
关联关系的级联操作
Cascade和inverse (Employee-Department)Cascade用来说明党对主对象进行某种操作时是否对其关联的从对象也作类似的操作,常用的cascade:none all save-update delete lock refresh evict replicate persist merge delete-orphan(one-t...2009-06-03 17:17:44 · 116 阅读 · 0 评论 -
Hibernate 复合主键
[zt]hibernate复合主键 key words:hibernate,复合主键,composite-id基于业务需求,您会需要使用两个字段来作复合主键,例如在User数据表中,您也许会使用"name"与"phone"两个字段来定义复合主键。假设您这么建立User表格:[code="java"]CREATE TABLE user ( nam...2009-09-25 09:13:46 · 132 阅读 · 0 评论