Hibernate
文章平均质量分 81
vebasan
这个作者很懒,什么都没留下…
展开
-
利于ThreadLocal模式管理Session
在利用Hibernate开发DAO模块时,我们和Session打的交道最多,所以如何合理的管理Session,避免Session的频繁创建和销毁,对于提高系统的性能来说是非常重要的,以往是通过eclipse的插件来自动完成这些代码的,当然效果是不错的,但是总是觉得不爽(没有读懂那些冗长的代码),所以现在打算自己实现Session管理的代码。 我们知道Session是由SessionFact转载 2009-08-20 11:57:00 · 626 阅读 · 0 评论 -
load,get;find,iterator;merge,saveOrUpdate,lock的区别
一、load,get(1)当记录不存在时候,get方法返回null,load方法产生异常(2)load方法可以返回实体的代理类,get方法则返回真是的实体类(3)load方法可以充分利用hibernate的内部缓存和二级缓存中的现有数据,而get方法仅仅在内部缓存中进行数据查找,如果没有发现数据則将越过二级缓存,直接调用SQL查询数据库。 (4) 也许别人把数据库中的数据修改了,lo转载 2010-01-07 23:39:00 · 587 阅读 · 0 评论 -
强人Hibernate笔记
一、对象定义1.org.hibernate.SessionFactory对于单个数据库,被编译的映射,是一个线程安全的缓冲区。是一个Session和ConnectionProvider客户端的工厂。拥有可选的对过程级和集群级重复利用的数据的缓存(二级缓存)。2.org.hibernate.Session单线程、短生命周期的在应用程序和持久化存储系统之间的一个会话对象。封装了一转载 2010-01-07 23:18:00 · 1186 阅读 · 0 评论 -
解决a different object with the same identifier value was already associated with the session错误
这个错误我一共遇到过两次,一直没有找到很好的解决方案,这个错误产生原因相信大家都知道,因为在hibernate中同一个session里面有了两个相同标识但是是不同实体,当这时运行saveOrUpdate(object)操作的时候就会报这个错误。呵呵,也许你会说,你这么说跟没说没什么区别,我承认,呵呵,我不知道具体为什么会产生这个错误,要不然也不会很久都没有解决,现在,给出一转载 2010-01-06 10:50:00 · 589 阅读 · 0 评论 -
a different object with the same identifier value
两次遇到这个问题a different object with the same identifier value从字面上的意思来看是2个不同的对象关联到了同一个标志位,也就是说在一个session中存在2个对象但这2个对象的标志位是相同的比如2个对象的 id值是一样的 而这又是数据库的唯一主键在做更新操作的时候就出现冲突了,因为Hibernate不知道到底要去更新哪个对象。 第一次是转载 2010-01-06 10:57:00 · 1057 阅读 · 0 评论 -
Hibernate的Component的用法
如果一张表的列太多了,那我们应该怎么做呢?可能有些人的做法就是:将一张一有拆分成两张表,那除了将表进行拆分,我们还能怎么样呢?在Hibernate对这种表的列太多,进行拆分,有一种非常好的解决方案,那就是基于Component技术,使用Component技术,我们可以将一种表,按照字段的类型进行分类,同一类的,可以使用一个对象进行封装,而这个封装的对象,就是一个Component。假转载 2010-03-01 10:30:00 · 6973 阅读 · 1 评论 -
Hibernate 的三种主键生成策略
Hibernate 的主键生成策略有三种,序列,自增,通用三种方式。一、序列:(只有在oracle 和DB2中支持) 在数据库中创建的squence的名字 二、自增:(只支持mysql 和sqlserver)在建表的时候设置 auto_increment 属性 三、通用:mysql不适用如果是oracle,序列名字一定要用hibernate_sequenc转载 2009-12-23 12:10:00 · 1219 阅读 · 1 评论 -
HQL查询语言
1 .from1.1单表查询from eg.cat as cat.其中,cat只是一个别名,为了用其他子语句的时候书写简单1.2多表查询from eg.Cat,eg.Dogfrom eg.Cat as cat,eg.Dog as dog2 join相关(inner) joinleft (outer) joinright (outer) joinfull joinHQL同样对SQL中的这些特性支持转载 2009-11-27 18:46:00 · 736 阅读 · 0 评论 -
Hibernate查询语句(未完待续……)
Hibernate查询概述:数据查询与检索是Hibernate中的一个亮点。相对其他ORM实现而言,Hibernate提供了灵活多样的查询机制。 标准化对象查询(Criteria Query):以对象的方式进行查询,将查询语句封装为对象操作。优点:可读性好,符合Java 程序员的编码习惯。缺点:不够成熟,不支持投影(projection)或统计函数(aggrega转载 2009-11-27 18:44:00 · 1122 阅读 · 0 评论 -
hibernate.cfg.xml配置收藏
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> true net.sf.hibernate.dialect.MySQLDialect 50 30 java:comp/e转载 2009-11-10 16:58:00 · 601 阅读 · 0 评论 -
Hibernate的三种连接池设置C3P0、Proxool和DBCP
以下三种连接都是以连接MySQl为例。 org.gjt.mm.mysql.Driver jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=GBK root 8888 上面的一段配置,在c3p0和dbcp中,都是必需的,因为hibernate会根据上述的配置来生成connections,再交给c3p0或d原创 2009-11-09 17:49:00 · 708 阅读 · 0 评论 -
C3P0连接池配置
C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。 3 30 1000 false 属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试 使用。Default: nul原创 2009-11-09 17:42:00 · 667 阅读 · 0 评论 -
Hibernate访问多个数据库的方法
一、Hibernate访问数据库时加载的过程对于大多数使用Hibernate的朋友来说,通常使用一下方式来获得Configuration实例: Configuration configure = new Configuration().configure();在Hibernate中,Configuration是hibernate的入口。在实例化一个Configuration的时候,Hib原创 2009-11-09 17:56:00 · 872 阅读 · 0 评论 -
使用C3P0时出现包警告的解决办法
警告内容如下(重点内容用蓝色标注):2009-11-09 17:07:07,843 WARN [com.mchange.v2.c3p0.management.ActiveManagementCoordinator] - A C3P0Registry mbean is already registered. This probably means that an application usin原创 2009-11-09 17:17:00 · 20614 阅读 · 1 评论 -
Hibernate异常分析:faultString: could not initialize proxy - the owni
其实这个异常写的非常之清楚,就是会话关闭,无法对Hibernate实体进行操作。造成这样的情况有很多,什么书写错误啊,逻辑错误啊,等等.不过,偶是因为LAZY. 关于lazy机制: 延迟初始化错误是运用Hibernate开发项目时最常见的错误。如果对一个类或者集合配置了延迟检索策略,那么必须当代理类实例或代理集合处于持久化状态(即处于Session范围内)时,才能初始化它。如果在游离状态时才转载 2009-11-10 17:08:00 · 866 阅读 · 0 评论 -
Hibernate部分jar包的功能说明
(1)hibernate3.jar: Hibernate的核心库,没有什么可说的,必须使用的jar包 (2)cglib-asm.jar: CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包 (3)dom4j.jar: dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀转载 2012-05-23 14:25:34 · 566 阅读 · 0 评论