Hibernate
IT静心修行
要学习忍者神龟的性格
展开
-
IT忍者神龟之Hibernat持久化对象-数据表映射配置回顾
1.持久化对象POJO编写规则: 1) 有空参public构造器; 2) 提供标识属性,映射数据表主键; 3) 属性提供setter和getter方法; 4) 属性使用基本数据类型的包装类型。基本类型在数据库中不能区分null和0; 5) 不使用final修饰。如果使用final则无法生成代理对象;当使用了final,load查询将如同get查询。原创 2014-11-10 15:41:21 · 925 阅读 · 0 评论 -
IT忍者神龟之Hibernate 疑难异常及处理3.5年前遇到的问题
1、a different object with the same identifier value was already associated with the session。 错误原因:在hibernate中同一个session里面有了两个相同标识但是是不同实体。 解决方法一:session.clean() PS:如果在clean操作后面又进行了saveOr原创 2014-11-10 16:33:51 · 488 阅读 · 0 评论 -
IT忍者神龟之Hibernate QBC语言
以下是HQL/QBC/Native SQL三种查询策略 HQL策略: Java代码 session.createQuery("FROM Category c where c.name like 'Laptop%'"); QBC策略: Java代码 session.createCriteria(Category.class).原创 2014-11-10 16:08:10 · 641 阅读 · 0 评论 -
IT忍者神龟之hibernate三态
Hibernate的对象有3种状态,分别为:瞬时态(Transient)、持久态(Persistent)、脱管态(Detached)。处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object)。 瞬时态 由new命令开辟内存空间的java对象, eg. Person person原创 2014-11-10 16:39:52 · 570 阅读 · 0 评论 -
IT忍者神龟之Hibernate自识别数据库
1、问题背景 我们经常使用Spring+Hibernate的配置,但当Jndi连接的数据库发生变化时问题就来了,如Oracle与MySQL。 我们不得不为sessionFactory定义两个,一个oracleSessionFactory,一个mySqlSessionFactory 再用 ? 1 alias nam原创 2014-11-10 15:59:30 · 537 阅读 · 0 评论 -
IT忍者神龟之全面讲解Hibernate缓存
在向大家详细介绍Hibernate二级缓存之前,首先让大家了解下一级缓存,然后全面介绍Hibernate二级缓存。 Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存原创 2014-11-10 16:30:39 · 531 阅读 · 0 评论 -
IT忍者神龟之在Hibernate中使用SQL语句
package cn.chn.chen.query.service.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData;原创 2014-11-10 16:13:13 · 507 阅读 · 0 评论 -
It忍者神龟之hibernate关联的实验
1. 用到的工具 myeclipse集成环境,powerdesigner数据库工具,mysql数据库,mysql query browser图形化管理工具。 本实验只用到hibernate框架,所有数据库表都有hibernate自动生成。而且为了写文档的方便,用的是hibernate annotation做的实验。 工程环境见下图: 图表 1工程环境原创 2014-11-10 16:51:54 · 508 阅读 · 0 评论 -
IT忍者神龟之hibernate 延迟加载问题探讨
关于 lazy 机制: 延迟初始化错误是运用 Hibernate 开发项目时最常见的错误。如果对一个类或者集合配置了延迟检索策略,那么必须当代理类实例或代理集合处于持久化状态(即处于Session范围内)时,才能初始化它。如果在游离状态时才初始化它,就会产生延迟初始化错误。 下面把Customer.hbm.xml文件的元素的 lazy 属性设为true,表示使用延迟检索策略:原创 2014-11-10 16:45:42 · 473 阅读 · 0 评论 -
IT忍者神龟之hibernate bug:ArrayIndexOutOfBoundsException on..
昨天给程序加上了2级缓存,今天打开查询统计页面,就报错: ? 1 2 3 4 5 ava.lang.ArrayIndexOutOfBoundsException: 0 at org.hibernate.type.TypeHelper.disassemble(TypeHelper.java:146)原创 2014-11-10 16:09:35 · 763 阅读 · 0 评论 -
IT忍者神龟之Hibernate的HQL总结
1. 查询整个映射对象所有字段 ? 1 2 3 4 5 6 7 8 //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段 String hql = "from Users"; Query query = session原创 2014-11-10 16:03:04 · 481 阅读 · 0 评论 -
IT忍者神龟之Hibernate联合主键下,主键生成策略
如果数据库中用多个字段而不仅仅是一个字段作为主键,也就是联合主键,这个时候就可以使用hibernate提供的联合主键生成策略。 具体如下: 可以使用一个组件作为一个实体类的标识符。你的组件类必须满足以下要求: 它必须实现 java.io.Serializable 接口 它必须重新实现 equals() 和 hashCode() 方法,始终和组合关键字在数据库中的概念保持原创 2014-10-29 10:53:43 · 713 阅读 · 0 评论