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 · 924 阅读 · 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 · 486 阅读 · 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 · 640 阅读 · 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 · 569 阅读 · 0 评论 -
IT忍者神龟之Hibernate自识别数据库
1、问题背景我们经常使用Spring+Hibernate的配置,但当Jndi连接的数据库发生变化时问题就来了,如Oracle与MySQL。我们不得不为sessionFactory定义两个,一个oracleSessionFactory,一个mySqlSessionFactory再用?1aliasnam原创 2014-11-10 15:59:30 · 535 阅读 · 0 评论 -
IT忍者神龟之全面讲解Hibernate缓存
在向大家详细介绍Hibernate二级缓存之前,首先让大家了解下一级缓存,然后全面介绍Hibernate二级缓存。Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存原创 2014-11-10 16:30:39 · 529 阅读 · 0 评论 -
IT忍者神龟之在Hibernate中使用SQL语句
packagecn.chn.chen.query.service.impl; importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.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级缓存,今天打开查询统计页面,就报错:?12345ava.lang.ArrayIndexOutOfBoundsException:0at org.hibernate.type.TypeHelper.disassemble(TypeHelper.java:146)原创 2014-11-10 16:09:35 · 762 阅读 · 0 评论 -
IT忍者神龟之Hibernate的HQL总结
1. 查询整个映射对象所有字段 ?12345678//直接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 评论