
hibernate
chatget
这个作者很懒,什么都没留下…
展开
-
单向一对一唯一外键关联
单向一对一主键关联实际上限制很多,因为你只有IdCard插入了那才能有这个Person.唯一外键关联实际上就是多对一的一个特例,只是加个unique约束而已.原理图:采用标签来映射,指定多的一端unique为true,这样就限制了多的一端的多重性为一,就是这样来映射的。对象模型:原创 2011-07-25 12:02:31 · 542 阅读 · 0 评论 -
hql(hibernate查询语言)
hibernate查询语言hql在hql中关键字不区分大小写,通常小写,类的名称和属性名称必须区分大小写主要有如下几种查询:(以Studet和Classes为例说明,1、简单属性查询【重要】 * 单一属性查询,返会属性结果集列表,元素类型和实体类中相应的类型一致//返回结果集属性原创 2011-07-27 10:25:06 · 1260 阅读 · 0 评论 -
OpenSessionInView的原理图总结.
如果在web应用中你的设置lazy是为true并且调用了原本想提高性能的load方法,那么一个session必须要在jsp里面拿到那个数据之后才关闭呀,否则是会抛出那个lazy异常的.如果没有在一个这样的线程中开着session,则图如下:所以 这会出现异常的,应该让这个sess原创 2011-07-27 10:37:07 · 1651 阅读 · 0 评论 -
悲观锁乐观锁及hibernate对它们的支持
首先高并发的情况下是要考虑锁的.如果不锁的话会引起更新丢失的.数据库中的悲观锁:数据库中的锁悲观锁,一上来查询的时候就把那条记录锁住select * from t_table_id where table_name='t_client' for update;这样就可以对这个记录原创 2011-07-27 12:26:06 · 915 阅读 · 0 评论 -
继承映射之每棵类继承树一张表
鉴别字段,每棵类继承树一张表的关键点就在这里.因为类继承树肯定是对应多个类,要把多个类的信息存放在一张表中,必须有某种机制来区分哪些记录是属于哪个类的。这种机制就是,在表中添加一个字段,用这个字段的值来进行区分。用hibernate实现这种策略的时候,有如下步骤:父类用普通的标签原创 2011-07-27 09:57:19 · 692 阅读 · 0 评论 -
继承映射之每个具体类张表
每个具体类一张表这种策略是使用union-subclass标签来定义子类的。每个子类对应一张表,而且这个表的信息是完备的,即包含了所有从父类继承下来的属性映射的字段(这就是它跟joined-subclass的不同之处,joined-subclass定义的子类的表,只包含子类特有属原创 2011-07-27 10:12:43 · 460 阅读 · 0 评论 -
缓存相关
主要的缓存有:一级缓存,二级缓存,查询缓存hibernate一级缓存session的使用策略是每线程一session一级缓存:session级别的缓存.session没有关闭的情况下是可以用这个缓存里面的东西的,如果跨session是不可以的.一级缓存生命周期很短和session原创 2011-07-27 19:18:26 · 767 阅读 · 0 评论 -
hibernate_jpa
如果用hibernate的Annotation那移植性就不是很好了,但他的功能比JPA的要强大.JPA:java持久化规范,hibernate对他进行了实现,如果用了标准注解,那这样就可以移植了,注解支持要专门下载.应用jap的步骤:1、建立java项目2、创建User Libr原创 2011-07-28 18:54:58 · 2185 阅读 · 0 评论 -
抓取策略
首先要搞清楚:抓取就是查询嘛,查询关联对象.可以决定如何抓取关联对象.fetch=slect的意思是另外发送一条语句加载其关联对象及集合.主要有单端代理即many-to-one这种类型的,集合代理,批量抓取单端代理:原创 2011-07-28 00:34:01 · 1387 阅读 · 0 评论 -
一对多关联之双向
hibernate一对多关联映射(双向ClassesStudent)采用一对多双向关联映射的目的主要是为了主要是为了解决一对多单向关联的缺陷而不是需求驱动的一对多双向关联的映射方式: * 在一的一端的集合上采用标签,在多的一端加入一个外键 * 在多的一端采用标签 !!!注意:标签原创 2011-07-25 14:29:09 · 561 阅读 · 0 评论 -
关于drp项目中的实体模型中树形结构的映射
分销商实际上要跟区域分开来的,单独把区域拿出来,一个区域下可能就有好多的分销商了,一对多.否则保存的时候数据是不正确的,如所有分销商,如果不分开的话那他如果是区域也一定要保存分销商级别,这样在逻辑是不正确的啊.把分销商跟区域的对象模型分开来.区域有个自关联,而分销商没有,具体映射原创 2011-07-29 11:12:43 · 793 阅读 · 0 评论 -
hibernate对象的三种状态
瞬时对象(Transient Objects):使用new操作符初始化的对象不是立刻就持久的。它们的状态是瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其它对象所引用),它们的状态将会丢失,并由垃圾回收机制回收。持久化对象(Persist Objects):持久实例是任何具有数据库标识的实例。它有持久化管理器Session统一管理,持久实例是在原创 2012-01-16 22:48:23 · 486 阅读 · 0 评论 -
每个类一张表
每个类一张表这种策略是使用joined-subclass标签来定义子类的。父类、子类,每个类都对应一张数据库表。在父类对应的数据库表中,实际上会存储所有的记录,包括父类和子类的记录;在子类对应的数据库表中,这个表只定义了子类中所特有的属性映射的字段。子类与父类,通过相同的主键值来原创 2011-07-27 10:07:04 · 731 阅读 · 0 评论 -
hibernate的核心配置中的一些常用配置
当sessionFactory对象一生成的时候让它自动生成表而不是手动去导出表,如何配置:设置为update原创 2011-07-27 10:38:37 · 695 阅读 · 0 评论 -
单向一对一主键关联映射
一对一映射分为单向的和双向的单向:主键关联映射,唯一外键关联映射双向:主键关联映射,唯一外键关联映射单向主键关联映射,一对一单向主键关联时没有抛出TransientObjectException,是由一对一关联映射的特性决定的,它必须先保存关联对象,这种保存hibernate它给原创 2011-07-24 22:25:46 · 1586 阅读 · 0 评论 -
双向一对一主键关联映射
hibernate一对一主键关联映射(双向关联PersonIdCard)原理跟单向主键关联映射是一样的,所不同的只是对象模型罢了需要在IdCard加入标签,指示hibernate将关联对象Person根据主键加载上来不影响存储,只影响加载对象模型如下:public class P原创 2011-07-25 12:33:10 · 683 阅读 · 0 评论 -
双向一对一唯一外键关联
hibernate一对一唯一外键关联映射(双向关联PersonIdCard)原理跟单向一对一唯一外键关联是一样的,都是加个外键,影响的只是对象模型一对一唯一外键关联双向采用标签映射,必须指定标签中的property-ref属性为关系字段的名称对象模型如下:public class原创 2011-07-25 12:40:31 · 1745 阅读 · 0 评论 -
一对多关联映射之单向
hibernate一对多关联映射(单向Classes--->Student)一对多关联映射和多对一关联映射映射原理是一致的,都是在多的一端加入一个外键,指向一的一端它们的区别在于维护的关系不同: * 多对一维护的关系是:多指向一的关系,有了此关系,在加载多的时候可以将一加载上来原创 2011-07-25 14:24:41 · 536 阅读 · 0 评论 -
多对多关联映射之单向
多对多关联映射需要用第三方表来进行关联.user--->role原理图:对象模型如下:public class Role { private int id; private String name;}public class User { private int id; p原创 2011-07-25 14:51:21 · 412 阅读 · 0 评论 -
多对多关联之双向
原理跟多对多关联之单向是一样的,都是要加入一个第三方表,所不同的只是对象模型对象模型图如下:对象模型如下:public class User { private int id; private String name; private Set roles;}public cl原创 2011-07-25 14:57:22 · 493 阅读 · 0 评论 -
Component映射
Component映射也叫组件映射出现原因:如有两个对象模型:public class User { private int id; private String name; private String email; private String addres原创 2011-07-25 20:29:45 · 573 阅读 · 0 评论 -
集合映射
原理:每个集合一个表原理图如下:集合的id是来自于那个总的值对象模型如下:public class CollectionMapping { private int id; private String name; private Set setValues = new Has原创 2011-07-25 21:08:20 · 405 阅读 · 0 评论 -
复合主键映射
复合(联合)主键映射:通常做法是将主键相关字段放到一个单独的类中,这样类是有要求的: * 必须实现序列化接口 * 覆盖equals和hashcode方法如会计核算期间:对象模型如下:public class FiscalYearPeriodPK implements Serial原创 2011-07-25 22:17:31 · 1062 阅读 · 0 评论 -
lazy总结
lazy的概念:在正真使用某个对象的时候才正真的去创建,对于hibernate才会正真的发出sql语句,去加载该对象hibernate的lazy策略可以使用在: * 标签上,可以取值:true/false * 标签上,可以取值:true/false,需要类增强工具,对字节码进行修原创 2011-07-25 22:30:58 · 519 阅读 · 0 评论 -
多对一映射
多对一关联映射原理:在多的一端加入一个外键,指向一的一端,这指的是在关系模型中关联映射,就是将关联关系映射到数据库中,所谓的关联关系在对象模型中就是一个或多个引用原创 2011-07-24 20:25:12 · 2020 阅读 · 0 评论 -
hibernate的三个核心接口
Configuration:概述:Configuration 类负责管理Hibernate 的配置信息。它包括如下内容:Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等。Hibernate映射文件(*.hbm.xml)。Hibernate配置的两种方法:属性文件(hibernate.properti原创 2012-01-16 22:45:12 · 639 阅读 · 0 评论