hibernate
小浣熊6616
这个作者很懒,什么都没留下…
展开
-
hibernate映射mysql text类型字段,报Data too long错误
原创 2013-05-06 11:36:25 · 320 阅读 · 0 评论 -
hibernate学习笔记第11讲-多对多关联映射many-to-many
原创 2012-10-17 09:07:36 · 62 阅读 · 0 评论 -
hibernate学习笔记第10讲-一对多关联映射one-to-many双向
原创 2012-10-16 11:18:54 · 65 阅读 · 0 评论 -
hibernate学习笔记第9讲-一对多关联映射one-to-many单向
。一对多关联映射:在多的一端加入一个外键指向一的一端,但是维护的关系是一指向多的一端。两者映射策略是一样的,只是站的角度不同。 Hibernate一对多映射(class--àstudent单向):一般用set集合,set里面的内容不可重复。也可以用别的集合。 在一的一端维护关系的缺点: *如果在t_student中的classId设置为非空not null,则无法保存。 *因为不是在student一端维护关系,student不知道是哪个班的原创 2012-10-16 11:18:43 · 88 阅读 · 0 评论 -
hibernate学习笔记第8讲-session_flush-数据库隔离级别
原创 2012-10-16 11:18:35 · 78 阅读 · 0 评论 -
hibernate学习笔记第7讲-一对一唯一外键关联映射one-to-one
<hibernate-mapping> <classname="com.bjsxt.hibernate.Person" table="t_person"> <idname="id"> <generatorclass="native"/>原创 2012-10-16 11:18:18 · 80 阅读 · 0 评论 -
hibernate学习笔记第6讲-一对一主键关联映射one-to-one
原创 2012-10-16 11:18:06 · 68 阅读 · 0 评论 -
hibernate学习笔记第5讲-多对一关联映射many-to-one
Many-to-one:*在多的一段加上一个外键指向一的一端。理解级联的含义: *是对象的连锁反应。User映射关系配置:<hibernate-mapping> <classname="com.bjsxt.hibernate.User" table="t_user"> <idname=&quo原创 2012-10-15 14:00:53 · 80 阅读 · 0 评论 -
hibernate学习笔记第4讲-基本映射标签和属性
普通属性指的是:不包括自定义类,数组,集合等。如果实体类和实体类中的属性和sql中的关键字重复,必须采用table或者column重新命名。实体类的设计原则:1, 实现一个默认的(无参数的)构造方法。2, 提供一个标识属性(可选)。3, 使用非final的类(可选)。如果final,无法继承。属性final则无法复写。影响lazy。因为Lazy是通过生成一个子类实现的。4, 为持久化字段生成访问器,getter,setter方法。例:<hi2012-10-15 13:56:55 · 71 阅读 · 0 评论 -
hibernate学习笔记第3讲—持久化对象的生命周期—load和get的区别
ession实例关联 (2)在数据库中没有和瞬时对象关联的记录2. 持久状态(Persistent)持久的实例在数据库中有对应的记录,并拥有一个持久化标识(identifier).持久对象总是与Session和Transaction相关联,在一个Session中,对持久对象的改变不会马上对数据库进行变更,而必须在Transaction终止,也就是执行commit()之后,才在数据库中真正运行SQL进行变更,持久对象的状态才会与数据库进行同步。在同步之前的持久对象称为脏(dirty)对象。2012-10-15 13:55:34 · 60 阅读 · 0 评论 -
hibernate学习笔记第2讲—hibernate核心接口
2012-10-15 13:52:45 · 58 阅读 · 0 评论 -
hibernate学习笔记第12讲-lazy策略
实现原理:采用第三方库cglib,对类生成代理类。代理可以控制源对象,并且可以对源对象的功能进行增强。Cglib和jdk动态代理的区别: 1,cglib能够对类进行代理,jdk动态代理只能对实现了接口的类进行代理。 2,Jdk动态代理类和原类实现相同的接口 3,Cglib 代理类继承原类,生成一个子类。 Lazy在hibernate中的使用地方:可以取值true或false。* <class>标签,可以取值true或false。默认为true。*原创 2012-10-17 09:07:46 · 80 阅读 · 0 评论 -
hibernate学习笔记第13讲-jdk动态代理和CGLib
原创 2012-10-17 09:07:54 · 88 阅读 · 0 评论 -
hibernate学习笔记第14讲-继承映射
应多个类,要把多个类的信息存放在一张表中,必须有某种机制来区分哪些记录是属于哪个类的。 这种机制就是,在表中添加一个字段,用这个字段的值来进行区分。用hibernate实现这种策略的时候,有如下步骤: 父类用普通的<class>标签定义 在父类中定义一个discriminator,即指定这个区分的字段的名称和类型 如:<discriminator column=”XXX” type=”string”/> 子类使用<su原创 2012-10-17 09:08:03 · 87 阅读 · 0 评论 -
Open_Session_In_View详解
原创 2012-12-11 10:32:39 · 104 阅读 · 0 评论 -
Could not initialize proxy - the owning Session was closed
原创 2012-12-11 09:35:59 · 117 阅读 · 0 评论 -
hibernate学习笔记第22讲-抓取策略
lassesid"fetch="select"/>fetch="select",另外发送一条select语句抓取当前对象关联实体或集合<hibernate-mapping> <classname="com.bjsxt.hibernate.Student" table="t_student">原创 2012-10-19 09:15:43 · 84 阅读 · 0 评论 -
hibernate学习笔记第21讲-查询缓存
询缓存生命周期结束 查询缓存的配置和使用: *在hibernate.cfg.xml文件中启用查询缓存,如: <propertyname="hibernate.cache.use_query_cache">true</property> *在程序中必须手动启用查询缓存,如: query.setCacheable(true); 在查询缓存中,它并不缓存结果集中所原创 2012-10-19 09:15:35 · 57 阅读 · 0 评论 -
hibernate学习笔记第20讲-二级缓存
二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存 二级缓存的配置和使用: *将echcache.xml文件拷贝到src下 *开启二级缓存,修改hibernate.cfg.xml文件 <propertyname="hibernate.cache.use_second_level_cache">true</prop原创 2012-10-18 08:27:37 · 62 阅读 · 0 评论 -
hibernate学习笔记第19讲-一级缓存
* load() * iterate(查询实体对象) 如何管理一级缓存: *session.clear(),session.evict() 如何避免一次性大量的实体数据入库导致内存溢出 * 先flush,再clear 如果数据量特别大,考虑采用jdbc实现,如果jdbc也不能满足要求可以考虑采用数据本身的特定导入工具 /** * 在同一个session中发出两次load查原创 2012-10-18 08:27:27 · 60 阅读 · 0 评论 -
hibernate学习笔记第18讲-悲观锁-乐观锁
原创 2012-10-18 08:27:18 · 64 阅读 · 0 评论 -
hibernate学习笔记第17讲-其他Set-List-Array-Map等映射
原创 2012-10-18 08:27:09 · 73 阅读 · 0 评论 -
hibernate学习笔记第16讲-复合主键映射
原创 2012-10-18 08:26:59 · 81 阅读 · 0 评论 -
hibernate学习笔记第15讲-component映射
、领域驱动设计模型)。采用component映射的好处:它实现了对象模型的细粒度划分,层次更分明,复用率更高。映射关系:<hibernate-mapping> <classname="com.bjsxt.hibernate.User" table="t_user"> <idname="id">原创 2012-10-17 09:08:10 · 71 阅读 · 0 评论 -
hibernate学习笔记第1讲—使用hibernate步骤
原创 2012-10-15 13:40:58 · 84 阅读 · 0 评论 -
hibernate学习笔记第5讲-多对一关联映射many-to-one
Hibernate多对一映射: 关联映射本质: *将关联关系映射到数据库。所谓关联关系就是对象模型在内存中的一个或者多个引用。 Many-to-one:*在多的一段加上一个外键指向一的一端。理解级联的含义: *是对象的连锁反应。User映射关系配置:<hibernate-mapping> ...原创 2012-10-15 14:00:53 · 83 阅读 · 0 评论 -
hibernate学习笔记第16讲-复合主键映射
复合(联合)主键映射:复合主键映射一般采用把主键相关的字段拿出来,单独形成一个类,该类必须实现序列化接口,(在同一个JVM中没关系,如果跨JVM再想访问,必须序列化)。复合主键一般与业务结合的很紧密,不建议使用。通常将复合主键相关的属性,单独放到一个类中 * 此类必须实现序列化接口 *覆写hashcode和equals方法映射关系:<h...原创 2012-10-18 08:26:59 · 98 阅读 · 0 评论 -
hibernate学习笔记第15讲-component映射
Component组件映射:对象模型细粒度划分,复用率提高 component是某个实体的逻辑组成部分,它与实体的根本区别是没有oid,component也称为值对象(DDD、领域驱动设计模型)。采用component映射的好处:它实现了对象模型的细粒度划分,层次更分明,复用率更高。映射关系:<hibernate-mapping> <classnam...原创 2012-10-17 09:08:10 · 82 阅读 · 0 评论 -
hibernate学习笔记第14讲-继承映射
继承映射:1,一个类继承树映射到一张表。一般采用第一种。效率高,资源占用率低。 1、理解如何映射 因为类继承树肯定是对应多个类,要把多个类的信息存放在一张表中,必须有某种机制来区分哪些记录是属于哪个类的。 这种机制就是,在表中添加一个字段,用这个字段的值来进行区分。用hibernate实现这种策略的时候,有如下步骤: 父类用普通的<class&g...原创 2012-10-17 09:08:03 · 71 阅读 · 0 评论 -
hibernate学习笔记第13讲-jdk动态代理和CGLib
Jdk动态代理,CGLib字节码生成如果目标对象实现了接口,可以使用jdk动态代理和CGLib。如果没有实现接口,只能使用CGLib。Jdk动态代理要实现一个接口:InvocationHandler publicclass SecurityHandler implements InvocationHandler {//目标对象,对该目标对象生成代理 ...原创 2012-10-17 09:07:54 · 103 阅读 · 0 评论 -
hibernate学习笔记第12讲-lazy策略
Hibernatelazy策略:延迟加载、懒加载。代理的概念:只有真正使用该对象的时候才会创建。Lazy在hibernate上:在真正使用的时候才会发出sql查询。实现原理:采用第三方库cglib,对类生成代理类。代理可以控制源对象,并且可以对源对象的功能进行增强。Cglib和jdk动态代理的区别: 1,cglib能够对类进行代理,jdk动态代理只能对实现了接口的类进...原创 2012-10-17 09:07:46 · 94 阅读 · 0 评论 -
hibernate学习笔记第11讲-多对多关联映射many-to-many
单向映射 hibernate多对多关联映射(单向User---->Role) 具体映射方式: <setname="roles" table="t_user_role"> <keycolumn="userid"/> <many-to..原创 2012-10-17 09:07:36 · 107 阅读 · 0 评论 -
hibernate学习笔记第10讲-一对多关联映射one-to-many双向
hihernate一对多关联映射(双向Classes<----->Student) 一对多双向关联映射: * 在一一端的集合上使用<key>,在对方表中加入一个外键指向一一端 * 在多一端采用<many-to-one> 注意:<key>标签指定的外键字段必须和<man...原创 2012-10-16 11:18:54 · 143 阅读 · 0 评论 -
hibernate学习笔记第9讲-一对多关联映射one-to-many单向
一对多关联映射利用了多对一关联映射的原理。多对一关联映射:在多的一端加入一个外键指向一的一端,但是维护的关系是多指向一的一端。一对多关联映射:在多的一端加入一个外键指向一的一端,但是维护的关系是一指向多的一端。两者映射策略是一样的,只是站的角度不同。 Hibernate一对多映射(class--àstudent单向):一般用set集合,set里面的内容不...原创 2012-10-16 11:18:43 · 84 阅读 · 0 评论 -
hibernate学习笔记第8讲-session_flush-数据库隔离级别
Session flush:默认在commit之前执行flush。Session flush方法主要做了两件事 1清理缓存 2 执行sqlSession flush 在什么时候执行: 1 默认在事务提交commit时 2, 显示调用。 3 在执行查询前,如 iterat...原创 2012-10-16 11:18:35 · 87 阅读 · 0 评论 -
hibernate学习笔记第7讲-一对一唯一外键关联映射one-to-one
Hibernate一对一唯一外键关联:就是多对一的特列,把外键设置成unique为true。采用<many-to-one name="idCard"unique="true"/> 单向:Person.hbm.xml<hibernate-mapping> <classname="com.bjsxt.hibernate....原创 2012-10-16 11:18:18 · 135 阅读 · 0 评论 -
hibernate学习笔记第17讲-其他Set-List-Array-Map等映射
1,set映射:set是无序的 2,List映射,list是有序的,表中需要保存一个索引序列存储顺序下标。3,数组映射,跟list一样。4,Map映射,key-value映射关系:<hibernate-mapping> <class name="com.bjsxt.hibernate.CollectionMapping"table="t_Coll...原创 2012-10-18 08:27:09 · 105 阅读 · 0 评论 -
hibernate学习笔记第18讲-悲观锁-乐观锁
Hibernate对悲观锁和乐观锁的支持,主要解决并发问题。数据库隔离级别越高,并发性越差。锁具有排他性,锁住别人就访问不了。悲观锁:并发性低,悲观锁一般依赖于数据库机制实现的,在整个过程中将数据锁定,其他任何用户都不能读取或修改,hibernate做了一些封装。一般适合短事务情况。实际上是冲突检测。悲观锁实现: ...原创 2012-10-18 08:27:18 · 81 阅读 · 0 评论 -
hibernate学习笔记第19讲-一级缓存
hibernate一级缓存 一级缓存很短和session的生命周期一致,一级缓存也叫session级的缓存或事务级缓存 那些方法支持一级缓存: * get() * load() * iterate(查询实体对象) 如何管理一级缓存: *session.clear(),session.evict() ...原创 2012-10-18 08:27:27 · 88 阅读 · 0 评论 -
hibernate学习笔记第4讲-基本映射标签和属性
Hibernate基本映射:实体类—映射—表。实体类普通属性—映射—表字段。采用<class>标签映射数据库表。采用<property>标签映射表字段。普通属性指的是:不包括自定义类,数组,集合等。如果实体类和实体类中的属性和sql中的关键字重复,必须采用table或者column重新命名。实体类的设计原则:1, 实现一个默认的(无...2012-10-15 13:56:55 · 80 阅读 · 0 评论