﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-天行键-随笔分类-Hibernate</title><link>http://www.blogjava.net/bnlovebn/category/19920.html</link><description>《周易》曰：&lt;br&gt;
天行健，君子以自强不息(乾卦)&lt;br&gt;
地势坤，君子以厚德载物(坤卦)
</description><language>zh-cn</language><lastBuildDate>Fri, 20 Jul 2007 14:21:14 GMT</lastBuildDate><pubDate>Fri, 20 Jul 2007 14:21:14 GMT</pubDate><ttl>60</ttl><item><title>Initialization of bean failed; Cannot configure CacheManager;文件提前结束　等错误</title><link>http://www.blogjava.net/bnlovebn/archive/2007/07/19/131202.html</link><dc:creator>重归本垒（BNBN）</dc:creator><author>重归本垒（BNBN）</author><pubDate>Thu, 19 Jul 2007 01:45:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2007/07/19/131202.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/131202.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2007/07/19/131202.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/131202.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/131202.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 12pt">org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactoryId' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.cache.CacheException: net.sf.ehcache.CacheException: Cannot configure CacheManager: 文件过早结束。<br><br>昨天rebase后出现了这个问题，费了我一个下午的时间，多方查找资料都没有办法，到今天早上后看到</span><a style="FONT-SIZE: 12pt" href="http://forum.springframework.org/showthread.php?t=25528">http://forum.springframework.org/showthread.php?t=25528</a><span style="FONT-SIZE: 12pt">上说的。才知道大概是ehcache配制不当造成的,于是从同事那里拷贝ehcache.xml过来，解决了！血的教训！<br><br>ehcache是一个很不错的轻量级缓存实现，速度快，功能全面（一般的应用完全足够了），从1.2版后可以支持分布式缓存，可以用在集群环境中。除了可以缓存普通的对象，还可以用来作为Web页面的缓存。缓存静态HTML、JSP、Velocity、FreeMarker等等的页面。Hibernate选择ehcache作为默认的缓存实现的。<br><br><br><br><br><br><br></span>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/131202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（BNBN）</a> 2007-07-19 09:45 <a href="http://www.blogjava.net/bnlovebn/archive/2007/07/19/131202.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>翻译的Hibernate的Session的javadoc[转]</title><link>http://www.blogjava.net/bnlovebn/archive/2007/07/13/130043.html</link><dc:creator>重归本垒（BNBN）</dc:creator><author>重归本垒（BNBN）</author><pubDate>Fri, 13 Jul 2007 05:02:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2007/07/13/130043.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/130043.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2007/07/13/130043.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/130043.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/130043.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Hibernate的透明持久化用起来非常舒服，有时甚至忘记了数据库的存在。我身边的朋友经常会分不清save、saveOrUpdate、update的区别，lock、merge、replicate、refresh、evict甚至不知道是干什么用的。而且关于实体对象的生命周期也有很多概念不清，分不清transient、persistent、detached的区别，只是知道PO、VO这样的通俗叫法。其实...&nbsp;&nbsp;<a href='http://www.blogjava.net/bnlovebn/archive/2007/07/13/130043.html'>阅读全文</a><img src ="http://www.blogjava.net/bnlovebn/aggbug/130043.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（BNBN）</a> 2007-07-13 13:02 <a href="http://www.blogjava.net/bnlovebn/archive/2007/07/13/130043.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>load,get;find,iterator;merge,saveOrUpdate,lock的区别</title><link>http://www.blogjava.net/bnlovebn/archive/2007/07/13/130025.html</link><dc:creator>重归本垒（BNBN）</dc:creator><author>重归本垒（BNBN）</author><pubDate>Fri, 13 Jul 2007 03:18:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2007/07/13/130025.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/130025.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2007/07/13/130025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/130025.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/130025.html</trackback:ping><description><![CDATA[<p>一、load,get<br>（1）当记录不存在时候，get方法返回null,load方法产生异常</p>
<p>（2）load方法可以返回实体的代理类，get方法则返回真是的实体类</p>
<p>（3）load方法可以充分利用hibernate的内部缓存和二级缓存中的现有数据，而get方法仅仅在内部缓存中进行数据查找，如果没有发现数据則将越过二级缓存，直接调用SQL查询数据库。<br>&nbsp;&nbsp;&nbsp;(４)&nbsp;也许别人把数据库中的数据修改了，load如何在缓存中找到了数据，则不会再访问数据库，而get则会返回最新数据。<br>&nbsp;<br>二、find,iterator<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1) iterator首先会获取符合条件的记录的id，再跟据id在本地缓存中查找数据，查找不到的再在数据库中查找，结果再存在缓存中。N+１条SQL。<br>　(2)find跟据生成的sql语句，直接访问数据库，查到的数据存在缓存中，一条sql。<br><br>三、Hibernate生成的DAO类中函数功能说明(merge,saveOrUpdate,lock)<br><br></p>
<p><font color=#3366ff>/**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 将传入的detached状态的对象的属性复制到持久化对象中，并返回该持久化对象。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 如果该session中没有关联的持久化对象，加载一个。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 如果传入对象未保存，保存一个副本并作为持久对象返回，传入对象依然保持detached状态。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</font><br>public Sysuser merge(Sysuser detachedInstance) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.debug("merging Sysuser instance");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sysuser result = (Sysuser) getHibernateTemplate().merge(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; detachedInstance);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.debug("merge successful");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return result;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (RuntimeException re) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.error("merge failed", re);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw re;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>}</p>
<p><font color=#3366ff>/**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 将传入的对象持久化并保存。 如果对象未保存（Transient状态），调用save方法保存。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 如果对象已保存（Detached状态），调用update方法将对象与Session重新关联。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br></font>public void attachDirty(Sysuser instance) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.debug("attaching dirty Sysuser instance");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getHibernateTemplate().saveOrUpdate(instance);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.debug("attach successful");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (RuntimeException re) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.error("attach failed", re);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw re;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>}</p>
<p><font color=#3366ff>/**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 将传入的对象状态设置为Transient状态<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</font><br>public void attachClean(Sysuser instance) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.debug("attaching clean Sysuser instance");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getHibernateTemplate().lock(instance, LockMode.NONE);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.debug("attach successful");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (RuntimeException re) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.error("attach failed", re);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw re;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>}</p>
<img src ="http://www.blogjava.net/bnlovebn/aggbug/130025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（BNBN）</a> 2007-07-13 11:18 <a href="http://www.blogjava.net/bnlovebn/archive/2007/07/13/130025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate SQL方言 (hibernate.dialect)</title><link>http://www.blogjava.net/bnlovebn/archive/2007/06/26/126307.html</link><dc:creator>重归本垒（BNBN）</dc:creator><author>重归本垒（BNBN）</author><pubDate>Tue, 26 Jun 2007 03:53:00 GMT</pubDate><guid>http://www.blogjava.net/bnlovebn/archive/2007/06/26/126307.html</guid><wfw:comment>http://www.blogjava.net/bnlovebn/comments/126307.html</wfw:comment><comments>http://www.blogjava.net/bnlovebn/archive/2007/06/26/126307.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bnlovebn/comments/commentRss/126307.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bnlovebn/services/trackbacks/126307.html</trackback:ping><description><![CDATA[如果出现如下错误，则可能是Hibernate SQL方言 (hibernate.dialect)设置不正确。<br>Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]'last_insert_id' 不是可以识别的 函数名。<br>
<div class=bvMsg id=msgcns!fcaf12f15c37d1ba!148>
<table summary="&#10;                    Hibernate SQL方言 (hibernate.dialect)&#10;                " border=1>
    <thead>
        <tr>
            <th>RDBMS
            <th>方言
        </tr>
    </tr>
</tr>
</tr>
</tr>
</tr>
</tr>
<tbody>
    <tr>
        <td>DB2
        <td><tt>org.hibernate.dialect.DB2Dialect</tt>
        <tr>
            <td>DB2 AS/400
            <td><tt>org.hibernate.dialect.DB2400Dialect</tt>
            <tr>
                <td>DB2 OS390
                <td><tt>org.hibernate.dialect.DB2390Dialect</tt>
                <tr>
                    <td>PostgreSQL
                    <td><tt>org.hibernate.dialect.PostgreSQLDialect</tt>
                    <tr>
                        <td>MySQL
                        <td><tt>org.hibernate.dialect.MySQLDialect</tt>
                        <tr>
                            <td>MySQL with InnoDB
                            <td><tt>org.hibernate.dialect.MySQLInnoDBDialect</tt>
                            <tr>
                                <td>MySQL with MyISAM
                                <td><tt>org.hibernate.dialect.MySQLMyISAMDialect</tt>
                                <tr>
                                    <td>Oracle (any version)
                                    <td><tt>org.hibernate.dialect.OracleDialect</tt>
                                    <tr>
                                        <td>Oracle 9i/10g
                                        <td><tt>org.hibernate.dialect.Oracle9Dialect</tt>
                                        <tr>
                                            <td>Sybase
                                            <td><tt>org.hibernate.dialect.SybaseDialect</tt>
                                            <tr>
                                                <td>Sybase Anywhere
                                                <td><tt>org.hibernate.dialect.SybaseAnywhereDialect</tt>
                                                <tr>
                                                    <td>Microsoft SQL Server
                                                    <td><tt>org.hibernate.dialect.SQLServerDialect</tt>
                                                    <tr>
                                                        <td>SAP DB
                                                        <td><tt>org.hibernate.dialect.SAPDBDialect</tt>
                                                        <tr>
                                                            <td>Informix
                                                            <td><tt>org.hibernate.dialect.InformixDialect</tt>
                                                            <tr>
                                                                <td>HypersonicSQL
                                                                <td><tt>org.hibernate.dialect.HSQLDialect</tt>
                                                                <tr>
                                                                    <td>Ingres
                                                                    <td><tt>org.hibernate.dialect.IngresDialect</tt>
                                                                    <tr>
                                                                        <td>Progress
                                                                        <td><tt>org.hibernate.dialect.ProgressDialect</tt>
                                                                        <tr>
                                                                            <td>Mckoi SQL
                                                                            <td><tt>org.hibernate.dialect.MckoiDialect</tt>
                                                                            <tr>
                                                                                <td>Interbase
                                                                                <td><tt>org.hibernate.dialect.InterbaseDialect</tt>
                                                                                <tr>
                                                                                    <td>Pointbase
                                                                                    <td><tt>org.hibernate.dialect.PointbaseDialect</tt>
                                                                                    <tr>
                                                                                        <td>FrontBase
                                                                                        <td><tt>org.hibernate.dialect.FrontbaseDialect</tt>
                                                                                        <tr>
                                                                                            <td>Firebird
                                                                                            <td><tt>org.hibernate.dialect.FirebirdDialect</tt></td>
                                                                                        </tr>
                                                                                    </tbody>
                                                                                </table>
                                                                                <br></div><img src ="http://www.blogjava.net/bnlovebn/aggbug/126307.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bnlovebn/" target="_blank">重归本垒（BNBN）</a> 2007-06-26 11:53 <a href="http://www.blogjava.net/bnlovebn/archive/2007/06/26/126307.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>