<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>隔叶黄莺 Unmi Blog &#187; Hibernate</title>
	<atom:link href="http://unmi.cc/category/javajee/hibernate/feed" rel="self" type="application/rss+xml" />
	<link>http://unmi.cc</link>
	<description></description>
	<lastBuildDate>Wed, 22 Feb 2012 14:20:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Hibernate 的 formula 简单用法</title>
		<link>http://unmi.cc/hibernate-formula-simple</link>
		<comments>http://unmi.cc/hibernate-formula-simple#comments</comments>
		<pubDate>Wed, 23 Feb 2011 13:26:51 +0000</pubDate>
		<dc:creator>Unmi</dc:creator>
				<category><![CDATA[Hibernate]]></category>

		<guid isPermaLink="false">http://unmi.cc/?p=3224</guid>
		<description><![CDATA[Hibernate 3 之后，formula(公式，Excel 里常见的) 得到了更广泛的应用，不过这里还是简单记录一下它在 &#60;property&#62; 中的应用。 假如我们要映射这么一个类： package cc.unmi.model; public class User {     private int id;     private String name;     Private Set&#60;Order&#62; orders = new HashSet&#60;Order&#62;();     //setter &#38; getter ...... } User 与 Order 建立了一对多的关联，那么它在 hbm 映射文件的写法大概就是： &#60;property name="name" type="string" column="name"&#62; &#60;set name="orders"&#62;     &#60;key column="user_id"/&#62;     &#60;one-to-many/&#62; &#60;/set&#62; 没错，这两个对象进行的关联，通过 user.getOrders() [...]]]></description>
		<wfw:commentRss>http://unmi.cc/hibernate-formula-simple/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>显示出 Hibernate 查询语句的绑定参数值</title>
		<link>http://unmi.cc/show-parameters-for-hql</link>
		<comments>http://unmi.cc/show-parameters-for-hql#comments</comments>
		<pubDate>Tue, 28 Dec 2010 17:03:15 +0000</pubDate>
		<dc:creator>Unmi</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[p6spy]]></category>

		<guid isPermaLink="false">http://unmi.cc/?p=2974</guid>
		<description><![CDATA[在使用 Hibernate 进行数据库操作的时候可以显示出所执行的 SQL 语句，相信用 Hibernate 的兄弟姐妹们都知道怎么设置。就设置 hibernate.show_sql  或者 show_sql 属性为 true 就行，在 hibernate.cfg.xml 或者与 Spring 集成时配置在 Spring 的配置文件中。再就是要让显示的 SQL 语句是格式化的，就配置 hibernate.format_sql 或是 format_sql 为 true，否则总在一行中执行。Hibernate 显示的 SQL 语句好像是通过 System.out.println() 直接输出的。 Hibernate 大部份时候是通过 PreparedStatement 来执行 SQL 语句的，它的好处是可预处理、被缓存，可防止注入。只是这样让 Hibernate 执行的 SQL 语句输出到控制台是带问号的，如： Hibernate:     select         formtempla0_.id as id6_,         formtempla0_.name as name6_,         formtempla0_.title as [...]]]></description>
		<wfw:commentRss>http://unmi.cc/show-parameters-for-hql/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hibernate3调用存储过程用法</title>
		<link>http://unmi.cc/hibernate3-call-procedure</link>
		<comments>http://unmi.cc/hibernate3-call-procedure#comments</comments>
		<pubDate>Mon, 23 Jun 2008 11:51:00 +0000</pubDate>
		<dc:creator>Unmi</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Procedure]]></category>

		<guid isPermaLink="false">http://unmi.cc/uncategorized/hibernate3%e8%b0%83%e7%94%a8%e5%ad%98%e5%82%a8%e8%bf%87%e7%a8%8b%e7%94%a8%e6%b3%95</guid>
		<description><![CDATA[直接以一个例子在说明，如DB2中有一个简单存储过程　selectAllUsers CREATE procedure selectAllUsers DYNAMIC RESULT SETS 1 BEGIN DECLARE temp_cursor1 CURSOR WITH RETURN TO CLIENT FOR SELECT * FROM test; OPEN temp_cursor1; END; 映射文件中关于存储过程内容如下  &#60;hibernate-mapping package="com.unmi.vo"&#62; &#60;class name="Test" table="TEST"&#62; 　　　　　............ &#60;/class&#62; &#60;sql-query callable="true" name="selectAllUsers"&#62; &#60;return alias="aa" class="Test"&#62; &#60;return-property name="oborqt" column="OBORQT"/&#62; &#60;return-property name="moorqt" column="MOORQT"/&#62; &#60;return-property name="roschn" column="ROSCHN"/&#62; &#60;return-property name="plandate" column="PLANDATE"/&#62; &#60;/return&#62; { ? = call [...]]]></description>
		<wfw:commentRss>http://unmi.cc/hibernate3-call-procedure/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hibernate 保存对象出现 org.hibernate.NonUniqueObjectException 及解决</title>
		<link>http://unmi.cc/hibernate-save-hibernate-nonuniqueobjectexception</link>
		<comments>http://unmi.cc/hibernate-save-hibernate-nonuniqueobjectexception#comments</comments>
		<pubDate>Thu, 09 Aug 2007 16:29:00 +0000</pubDate>
		<dc:creator>Unmi</dc:creator>
				<category><![CDATA[Hibernate]]></category>

		<guid isPermaLink="false">http://unmi.cc/uncategorized/hibernate-%e4%bf%9d%e5%ad%98%e5%af%b9%e8%b1%a1%e5%87%ba%e7%8e%b0-org-hibernate-nonuniqueobjectexception-%e5%8f%8a%e8%a7%a3%e5%86%b3</guid>
		<description><![CDATA[Hibernate save 在 session 中已存在相同 OID(主键) 的对象，会出现异常，详细内容如下： Exception in thread "main" org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.unmi.LoanDetail#1]  at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:168)  at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)  at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)  at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)  at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)  at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)  at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)  at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)  at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)  at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)  at com.unmi.Test.main(Test.java:44) 重现以上错误的代码如下(去除了事物控制的代码行)： Session session = HibernateSessionFactory.getSession(); // [...]]]></description>
		<wfw:commentRss>http://unmi.cc/hibernate-save-hibernate-nonuniqueobjectexception/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Hibernate程序使用WAS连接池提交事务时出现 NullPointerException</title>
		<link>http://unmi.cc/hibernate-was-connection-pool-nullpointerexception</link>
		<comments>http://unmi.cc/hibernate-was-connection-pool-nullpointerexception#comments</comments>
		<pubDate>Sat, 21 Apr 2007 07:57:00 +0000</pubDate>
		<dc:creator>Unmi</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[WAS]]></category>

		<guid isPermaLink="false">http://unmi.cc/uncategorized/hibernate%e7%a8%8b%e5%ba%8f%e4%bd%bf%e7%94%a8was%e8%bf%9e%e6%8e%a5%e6%b1%a0%e6%8f%90%e4%ba%a4%e4%ba%8b%e5%8a%a1%e6%97%b6%e5%87%ba%e7%8e%b0nbspnullpointerexception</guid>
		<description><![CDATA[Hibernate应用程序部署到WebSphere Application Server 5.1上,使用WAS的连接池,程序在处理了比较多的 session.save(object)操作之后,在执行提交事物 trans.commit()之时出现以下异常  java.lang.NullPointerException         at oracle.jdbc.dbaccess.DBData.clearItem(DBData.java:431)         at oracle.jdbc.dbaccess.DBDataSetImpl.clearItem(DBDataSetImpl.java:3528)         at oracle.jdbc.driver.OraclePreparedStatement.clearParameters(OraclePreparedStatement.java:3401)         at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.resetStatement(WSJdbcConnection.java:1719)         at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java:1415)         at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java:1381)         at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:497)         at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:94)         at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:87)         at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:218)         at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2220)         at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2656)         at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:52)         at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)         at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)         at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139) [...]]]></description>
		<wfw:commentRss>http://unmi.cc/hibernate-was-connection-pool-nullpointerexception/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Hibernate应用程序部署在WebSphere AS 上出现记录死锁的分析与解决</title>
		<link>http://unmi.cc/hibernate-was-dead-lock</link>
		<comments>http://unmi.cc/hibernate-was-dead-lock#comments</comments>
		<pubDate>Fri, 13 Apr 2007 16:09:00 +0000</pubDate>
		<dc:creator>Unmi</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[WAS]]></category>

		<guid isPermaLink="false">http://unmi.cc/uncategorized/hibernate%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e9%83%a8%e7%bd%b2%e5%9c%a8webspherenbspasnbsp%e4%b8%8a%e5%87%ba%e7%8e%b0%e8%ae%b0%e5%bd%95%e6%ad%bb%e9%94%81%e7%9a%84%e5%88%86%e6%9e%90</guid>
		<description><![CDATA[有一个项目，是用Hibernate开发的部署在WebSphere Application Server 5.1下，总是会出现数据库记录被死锁的情况，即使是一个简单的更新动作，都有可能造成。 这个问题，困扰我许久，检查过所有代码，事物一定要提交或者回滚，Session及时释放，怀疑过是否是因为是部署在集群环境，但好像那些措施总于事无补，百思不得其解。 就差没有使用容器提供的事物了。 突然间想到去各自的官网，查查有没有人碰到过类似的信息，于是在 http://www.hibernate.org 网站找到了Hibernate in WAS 5.x - fixes possible deadlock problem，其中提到要定制一个 ConnectionProvider，名之为 WSDataSourceConnectionProvider，代码如下： package com.unmi.db; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; import org.apache.log4j.Logger; import org.hibernate.HibernateException; import org.hibernate.cfg.Environment; import org.hibernate.connection.ConnectionProvider; import org.hibernate.util.NamingHelper; import com.ibm.websphere.rsadapter.JDBCConnectionSpec; import com.ibm.websphere.rsadapter.WSCallHelper; import com.ibm.websphere.rsadapter.WSDataSource; import com.ibm.websphere.rsadapter.WSRRAFactory; import com.ibm.ws.rsadapter.jdbc.WSJdbcConnection; import com.ibm.ws.rsadapter.jdbc.WSJdbcUtil; /** * ConnectionProvider implementation that implements [...]]]></description>
		<wfw:commentRss>http://unmi.cc/hibernate-was-dead-lock/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hibernate从2升级到3不支持Oracle8外连接(+)的解决办法</title>
		<link>http://unmi.cc/hibernate-2-to-3-support-plus</link>
		<comments>http://unmi.cc/hibernate-2-to-3-support-plus#comments</comments>
		<pubDate>Sat, 07 Apr 2007 09:47:00 +0000</pubDate>
		<dc:creator>Unmi</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://unmi.cc/uncategorized/hibernate%e4%bb%8e2%e5%8d%87%e7%ba%a7%e5%88%b03%e4%b8%8d%e6%94%af%e6%8c%81oracle8%e5%a4%96%e8%bf%9e%e6%8e%a5%e7%9a%84%e8%a7%a3%e5%86%b3%e5%8a%9e%e6%b3%95</guid>
		<description><![CDATA[最近接手了一个要维护的项目，是用Hibernate2+Oralce8写成的，因为看到Hibernate3页出来这么久了，而且也感觉Hibernate3有它的许多新的特性，如批量删除和更新，新的HQL语法解析器AST。 升级过程大致按照孙卫琴的那篇文章 如何把Hibernate2.1升级到Hibernate3.0？来做，该替换的替换完，该设置的设置完，程序一跑，当程序执行到向下面这种查询的时候(Oracle所特有的外连接查询)，报错。 语句为：（描述为类似语句，把项目中的实际表名隐去了） session.createQuery("select t1.c1,t2.c1 from Table1 t1,Table2 t2 where t1.c1=t2.c1(+)").list(); 出错信息为： org.hibernate.hql.ast.QuerySyntaxException: unexpected token: ) near line 1, column 106 [select t1.c1,t2.c1 from Table1 t1,Table2 t2 where t1.c1=t2.c1(+)]  at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:31)  at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:24)  at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)  at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:258)  at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)  at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)  at org.hibernate.engine.query.HQLQueryPlan.&#60;init&#62;(HQLQueryPlan.java:77)  at org.hibernate.engine.query.HQLQueryPlan.&#60;init&#62;(HQLQueryPlan.java:56)  at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)  at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)  at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)  at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623) 再回头看看孙卫琴的那篇升级注意事项中 [...]]]></description>
		<wfw:commentRss>http://unmi.cc/hibernate-2-to-3-support-plus/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hibernate如何与Firebird数据库自增字段映射</title>
		<link>http://unmi.cc/hibernate-map-firebird-autoincrement</link>
		<comments>http://unmi.cc/hibernate-map-firebird-autoincrement#comments</comments>
		<pubDate>Sat, 10 Feb 2007 04:26:00 +0000</pubDate>
		<dc:creator>Unmi</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Firebird]]></category>

		<guid isPermaLink="false">http://unmi.cc/uncategorized/hibernate%e5%a6%82%e4%bd%95%e4%b8%8efirebird%e6%95%b0%e6%8d%ae%e5%ba%93%e8%87%aa%e5%a2%9e%e5%ad%97%e6%ae%b5%e6%98%a0%e5%b0%84</guid>
		<description><![CDATA[Firebird 本身是没有自增型字段，但可以通过序列键产生器和触发器共同来实现，步骤如下： CREATE TABLE my_table (    my_number integer not null primary key   )    CREATE GENERATOR my_generator    CREATE TRIGGER my_before_trigger FOR my_table    BEFORE INSERT   AS   BEGIN   IF (NEW.my_number IS NULL)    THEN NEW.my_number = GEN_ID(my_generator, 1);    END   Hibernate 与它只要用 increment 与该字段映射: &#60;generator class="increment"/&#62;]]></description>
		<wfw:commentRss>http://unmi.cc/hibernate-map-firebird-autoincrement/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MyEclipse5.1生成映射文件出现Generating Artifacts错误</title>
		<link>http://unmi.cc/myeclipse51-generating-artifacts</link>
		<comments>http://unmi.cc/myeclipse51-generating-artifacts#comments</comments>
		<pubDate>Tue, 06 Feb 2007 11:30:00 +0000</pubDate>
		<dc:creator>Unmi</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[MyEclipse]]></category>

		<guid isPermaLink="false">http://unmi.cc/uncategorized/myeclipse5-1%e7%94%9f%e6%88%90%e6%98%a0%e5%b0%84%e6%96%87%e4%bb%b6%e5%87%ba%e7%8e%b0generating-artifacts%e9%94%99%e8%af%af</guid>
		<description><![CDATA[使用 Eclipse3.2.1+MyEclipse5.1+classes12.jar+Hibernate3 建立了 Hibernate3 的 Project, 使用上面那个 classes12.jar 的驱动，在 MyEclipse 的 DB Browser 连接上数据库，选择表，在上下文菜单中点击 Hibernate Reverse Engnieering, 直接点 Finish 按钮， 生成映射文件是出现出错： An internal error occurred during "Generating Artifacts" 原来在 Eclipse3.1+4.1+Hibernate 连接 DB2 时一切正常，曾经用 MyEclipse5.0 也正常生成出映射文件来，可最近总是连接 Oralce 生成映射文件时出现以上错误，一直也没去找是什么原因，搁置了很久，今天想看看 MyEclipse 对于建立了主外键关系的表(其中子表有自己的主键)生成的一对多关系的映射文件是什么样子的，才在网上找找这到底是怎么回事的。 网上的说话基本都是说驱动太老了，必须换成更新的驱动，因为我本地安装的是 Oracle92，所以为 MyEclipse 指定 Oracle92 安装目录中的驱动，以下包中1、4、9、10都依依试过，可是故障依旧 1.  %OraHome%\jdbc\lib\classes111.jar 2.  %OraHome%\jdbc\lib\classes111.zip 3.  %OraHome%\jdbc\lib\classes111_g.jar 4.  %OraHome%\jdbc\lib\classes111_g.zip 5.  %OraHome%\jdbc\lib\classes12.jar [...]]]></description>
		<wfw:commentRss>http://unmi.cc/myeclipse51-generating-artifacts/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 11/65 queries in 0.028 seconds using disk: basic
Object Caching 2777/2881 objects using disk: basic

Served from: unmi.cc @ 2012-02-23 07:53:46 -->
