<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-3958623046725572438.post1822947589910895909..comments</id><updated>2011-07-29T04:19:59.670-05:00</updated><category term='hibernate'/><category term='tech'/><category term='proxy'/><category term='java'/><category term='mysql'/><category term='work'/><category term='mac'/><title type='text'>Comments on capricious diatribes: Hibernate Query Cache: A Dirty Little Secret</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://darren.oldag.net/feeds/1822947589910895909/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html'/><author><name>Oldag</name><uri>http://www.blogger.com/profile/14242449133322470801</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-4116421729649382200</id><published>2011-07-29T04:19:59.670-05:00</published><updated>2011-07-29T04:19:59.670-05:00</updated><title type='text'>Great article. This gave me the real taste and com...</title><content type='html'>Great article. This gave me the real taste and complexity in understanding caching in ORM.&lt;br /&gt;Thank you for posting this.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/4116421729649382200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/4116421729649382200'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1311931199670#c4116421729649382200' title=''/><author><name>Amar</name><uri>http://www.blogger.com/profile/06799894841667984815</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-933363489'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-6673949553350295583</id><published>2011-04-10T13:18:44.732-05:00</published><updated>2011-04-10T13:18:44.732-05:00</updated><title type='text'>I hope you will keep updating your content constan...</title><content type='html'>I hope you will keep updating your content constantly as you have one dedicated reader here.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://yourdoctorpharmacy.com/#404" rel="nofollow"&gt;cheap clomid&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/6673949553350295583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/6673949553350295583'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1302459524732#c6673949553350295583' title=''/><author><name>cevugown</name><uri>http://cevugown.wordpress.com/</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/openid16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1445478475'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-8827644584482614827</id><published>2011-04-08T16:04:22.485-05:00</published><updated>2011-04-08T16:04:22.485-05:00</updated><title type='text'>Great work keep it coming, best blog on earth

&lt;a ...</title><content type='html'>Great work keep it coming, best blog on earth&lt;br /&gt;&lt;br /&gt;&lt;a href="http://theworldofaromatherapy.com/#32" rel="nofollow"&gt;aromatherapy world&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/8827644584482614827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/8827644584482614827'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1302296662485#c8827644584482614827' title=''/><author><name>gequaire</name><uri>http://gequaire.livejournal.com/</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/openid16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2054690613'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-1802077857784444762</id><published>2009-06-16T15:20:36.659-05:00</published><updated>2009-06-16T15:20:36.659-05:00</updated><title type='text'>The bug 3383 seems to have been fixed in Hibernate...</title><content type='html'>The bug 3383 seems to have been fixed in Hibernate 3.2.7 which will be released in weeks, if not days.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/1802077857784444762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/1802077857784444762'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1245183636659#c1802077857784444762' title=''/><author><name>Roshan Shrestha</name><uri>http://www.blogger.com/profile/14389545211758295773</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1596935075'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-7248681583560975578</id><published>2009-06-05T14:26:16.834-05:00</published><updated>2009-06-05T14:26:16.834-05:00</updated><title type='text'>Interestingly there is another bug in hibernate HH...</title><content type='html'>Interestingly there is another bug in hibernate HHH-3028. This is causing huge memory leak if the query cache is enabled. Even if we evict the objects/or clear the objects after isert/update still hibernate holds the objects in memory when query cache is enabled.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/7248681583560975578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/7248681583560975578'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1244229976834#c7248681583560975578' title=''/><author><name>test</name><uri>http://www.blogger.com/profile/17261943318182611221</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-879567372'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-8879771088210587572</id><published>2009-05-12T11:47:00.000-05:00</published><updated>2009-05-12T11:47:00.000-05:00</updated><title type='text'>and once again, i got caught not looking at those ...</title><content type='html'>and once again, i got caught not looking at those particular sources myself.  :\</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/8879771088210587572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/8879771088210587572'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1242146820000#c8879771088210587572' title=''/><author><name>Oldag</name><uri>http://www.blogger.com/profile/14242449133322470801</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-234856771'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-7379080562807166300</id><published>2009-05-12T06:43:00.000-05:00</published><updated>2009-05-12T06:43:00.000-05:00</updated><title type='text'>Hi Steve,

That's good to know. I had the impressi...</title><content type='html'>Hi Steve,&lt;br /&gt;&lt;br /&gt;That's good to know. I had the impression that I'd have to crawl through many QueryKey references scattered through the codebase. Does this mean we should expect an official fix soon?&lt;br /&gt;&lt;br /&gt;BTW, what the Hibernate release status? It's been a while.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/7379080562807166300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/7379080562807166300'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1242128580000#c7379080562807166300' title=''/><author><name>Manuel Dominguez Sarmiento</name><uri>http://www.blogger.com/profile/04239763411485304351</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_KgGKJdLUJq4/Sb6sZ4H7wII/AAAAAAAAAAM/IvD-6DbgVd8/S220/116141a.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2060231426'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-8821183608164550178</id><published>2009-05-11T23:15:00.000-05:00</published><updated>2009-05-11T23:15:00.000-05:00</updated><title type='text'>QueryKey is built in a single place org.hibernate....</title><content type='html'>QueryKey is built in a single place org.hibernate.loader.Loader#listUsingQueryCache, which does have access to the session...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/8821183608164550178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/8821183608164550178'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1242101700000#c8821183608164550178' title=''/><author><name>Steve Ebersole</name><uri>http://www.blogger.com/profile/04954452918740670413</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1651109053'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-4498299919082967020</id><published>2009-05-11T21:33:00.000-05:00</published><updated>2009-05-11T21:33:00.000-05:00</updated><title type='text'>d'oh!  i didn't actually look where the QueryKey c...</title><content type='html'>d'oh!  i didn't actually look where the QueryKey constructor was used.  i was looking at QueryCache.put() which takes both the query key AND the SessionImplementor.  which, would make it easy in my 'decorator' implementation to get the id from an entity.  but it doesn't help in the generic "fix the QueryKey" case.  rats.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/4498299919082967020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/4498299919082967020'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1242095580000#c4498299919082967020' title=''/><author><name>Oldag</name><uri>http://www.blogger.com/profile/14242449133322470801</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-234856771'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-2593774725068341400</id><published>2009-05-11T19:06:00.000-05:00</published><updated>2009-05-11T19:06:00.000-05:00</updated><title type='text'>Hi Olag,

I did actually consider Type.disassemble...</title><content type='html'>Hi Olag,&lt;br /&gt;&lt;br /&gt;I did actually consider Type.disassemble() however it requires access to a SessionImplementor which is not available within the scope of QueryKey. It could be passed as a parameter but this would require modifying many other source classes. The proposed solution is self-contained (assuming it works as intended).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/2593774725068341400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/2593774725068341400'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1242086760000#c2593774725068341400' title=''/><author><name>Manuel Dominguez Sarmiento</name><uri>http://www.blogger.com/profile/04239763411485304351</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_KgGKJdLUJq4/Sb6sZ4H7wII/AAAAAAAAAAM/IvD-6DbgVd8/S220/116141a.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2060231426'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-1699553532410242168</id><published>2009-05-11T17:09:00.000-05:00</published><updated>2009-05-11T17:09:00.000-05:00</updated><title type='text'>@Manuel -- I looked at your sample java but didn't...</title><content type='html'>@Manuel -- I looked at your sample java but didn't get a chance to try it.  I think we're on the right track... but there's been some traffic on &lt;A HREF="http://darren.oldag.net/2009/05/hibernate-wars-query-cache-strikes-back.html" REL="nofollow"&gt;a newer post&lt;/A&gt; with some comments from a hibernate dev.  He suggested we look at the Type.disassemble() method since we have Type available for both named and positional parameters.  For Entity types, it should returned the serializable identifier.  And for other types, it should "do the right thing."</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/1699553532410242168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/1699553532410242168'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1242079740000#c1699553532410242168' title=''/><author><name>Oldag</name><uri>http://www.blogger.com/profile/14242449133322470801</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-234856771'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-1105889918333292799</id><published>2009-05-06T21:25:00.000-05:00</published><updated>2009-05-06T21:25:00.000-05:00</updated><title type='text'>Well it got mangled again - the file is QueryKey.j...</title><content type='html'>Well it got mangled again - the file is QueryKey.java (java extension)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/1105889918333292799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/1105889918333292799'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1241663100000#c1105889918333292799' title=''/><author><name>Manuel Dominguez Sarmiento</name><uri>http://www.blogger.com/profile/04239763411485304351</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_KgGKJdLUJq4/Sb6sZ4H7wII/AAAAAAAAAAM/IvD-6DbgVd8/S220/116141a.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2060231426'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-2083927602764121874</id><published>2009-05-06T21:24:00.000-05:00</published><updated>2009-05-06T21:24:00.000-05:00</updated><title type='text'>Here's the link again - http://www.residencialagua...</title><content type='html'>Here's the link again - http://www.residencialaguardia.com/temp/QueryKey.java for some reason it got mangled in the previous post.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/2083927602764121874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/2083927602764121874'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1241663040000#c2083927602764121874' title=''/><author><name>Manuel Dominguez Sarmiento</name><uri>http://www.blogger.com/profile/04239763411485304351</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_KgGKJdLUJq4/Sb6sZ4H7wII/AAAAAAAAAAM/IvD-6DbgVd8/S220/116141a.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2060231426'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-7274999663153577814</id><published>2009-05-06T21:23:00.000-05:00</published><updated>2009-05-06T21:23:00.000-05:00</updated><title type='text'>Check out this possible solution http://www.reside...</title><content type='html'>Check out this possible solution http://www.residencialaguardia.com/temp/QueryKey.java&lt;br /&gt;&lt;br /&gt;It's a patched QueryKey which attempts to detect whether an object is an entity and replaces its value with its key. Should work for both positional and named parameters as well.&lt;br /&gt;&lt;br /&gt;It's not tested at all - I just did this as a late-night proof-of-concept exercise. It uses Apache Commons BeanUtils for reflection but it could easily be done without it.&lt;br /&gt;&lt;br /&gt;Let me know what you think. If you find it works well we can give it a better shape and try to contribute back to Hibernate.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/7274999663153577814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/7274999663153577814'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1241662980000#c7274999663153577814' title=''/><author><name>Manuel Dominguez Sarmiento</name><uri>http://www.blogger.com/profile/04239763411485304351</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_KgGKJdLUJq4/Sb6sZ4H7wII/AAAAAAAAAAM/IvD-6DbgVd8/S220/116141a.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2060231426'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-5912795666949580472</id><published>2009-05-06T09:46:00.000-05:00</published><updated>2009-05-06T09:46:00.000-05:00</updated><title type='text'>Agreed, on fixing internally to hibernate.  I don'...</title><content type='html'>Agreed, on fixing internally to hibernate.  I don't claim to be an expert -- so maybe there is cache/JVM clustering issues I am not aware of.&lt;br /&gt;&lt;br /&gt;A newer post details some more duplication waste I came across -- &lt;br /&gt;&lt;br /&gt;&lt;A HREF="http://darren.oldag.net/2009/05/hibernate-wars-query-cache-strikes-back.html" REL="nofollow"&gt;Query Cache Strikes Back&lt;/A&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/5912795666949580472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/5912795666949580472'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1241621160000#c5912795666949580472' title=''/><author><name>Oldag</name><uri>http://www.blogger.com/profile/14242449133322470801</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-234856771'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-4201919953526411749</id><published>2009-05-05T06:53:00.000-05:00</published><updated>2009-05-05T06:53:00.000-05:00</updated><title type='text'>Hi there, I posted the original JIRA bug report. S...</title><content type='html'>Hi there, I posted the original JIRA bug report. Soon after posting I also realized that we could rewrite criteria queries as well and this is in fact what we did for all our cacheable queries. However the real solution is fixing the Hibernate core - new developers will most likely ignore this subtle problem and this would go unnoticed until the apps go into production and start eating memory up.&lt;br /&gt;&lt;br /&gt;Nice blog entry. I would approach the solution by storing only primitives in the QueryCacheKey, both for positional and named parameters. That's fool-proof if we can pull it off elegantly.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/4201919953526411749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/4201919953526411749'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1241524380000#c4201919953526411749' title=''/><author><name>Manuel Dominguez Sarmiento</name><uri>http://www.blogger.com/profile/04239763411485304351</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_KgGKJdLUJq4/Sb6sZ4H7wII/AAAAAAAAAAM/IvD-6DbgVd8/S220/116141a.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2060231426'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-1161273786511191967</id><published>2009-04-14T22:51:00.000-05:00</published><updated>2009-04-14T22:51:00.000-05:00</updated><title type='text'>Thanks for the kind words.  Although I wouldn't go...</title><content type='html'>Thanks for the kind words.  Although I wouldn't go back to implementing my own ORM, I'll admit hibernate continues to "surprise" me quite often...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/1161273786511191967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/1161273786511191967'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1239767460000#c1161273786511191967' title=''/><author><name>Oldag</name><uri>http://www.blogger.com/profile/14242449133322470801</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-234856771'/></entry><entry><id>tag:blogger.com,1999:blog-3958623046725572438.post-819868592041855883</id><published>2009-03-18T02:50:00.000-05:00</published><updated>2009-03-18T02:50:00.000-05:00</updated><title type='text'>Wonderful article. I would say you have done a ver...</title><content type='html'>Wonderful article. I would say you have done a very good job in explaining how query caching works and its limitations.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/819868592041855883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3958623046725572438/1822947589910895909/comments/default/819868592041855883'/><link rel='alternate' type='text/html' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html?showComment=1237362600000#c819868592041855883' title=''/><author><name>Anuj</name><uri>http://www.blogger.com/profile/16891692018286987760</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://darren.oldag.net/2008/11/hibernate-query-cache-dirty-little_04.html' ref='tag:blogger.com,1999:blog-3958623046725572438.post-1822947589910895909' source='http://www.blogger.com/feeds/3958623046725572438/posts/default/1822947589910895909' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2079199025'/></entry></feed>
