<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Hibernate Pitfalls part 3</title>
	<atom:link href="http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/feed/" rel="self" type="application/rss+xml" />
	<link>http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/</link>
	<description>Brian Pontarelli</description>
	<pubDate>Sat, 31 Jul 2010 07:04:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Mark</title>
		<link>http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-83093</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Thu, 25 Jun 2009 19:16:42 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-83093</guid>
		<description>My current project is using Hibernate and it performs badly. We are considering replacing Hibernate with some other options. After all those years practice as an independent consultant, my believe in KISS keeps growing. Thank you, Brian, for such a wonderful post.</description>
		<content:encoded><![CDATA[<p>My current project is using Hibernate and it performs badly. We are considering replacing Hibernate with some other options. After all those years practice as an independent consultant, my believe in KISS keeps growing. Thank you, Brian, for such a wonderful post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: FlexibleGhandi</title>
		<link>http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-82841</link>
		<dc:creator>FlexibleGhandi</dc:creator>
		<pubDate>Mon, 22 Jun 2009 16:07:09 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-82841</guid>
		<description>StickyBandit nailed it.</description>
		<content:encoded><![CDATA[<p>StickyBandit nailed it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: StickyBandit</title>
		<link>http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-82207</link>
		<dc:creator>StickyBandit</dc:creator>
		<pubDate>Fri, 12 Jun 2009 21:14:19 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-82207</guid>
		<description>The sheer fact that Max and Brian had to discuss/debate so many details about hibernate &#38; O/R concept is proof in and of itself that this is not KISS.
Brian and also Max may be experts at hibernate and I appreciate the knowledge if I have to use Hibernate to get my paycheck.  But,   
I could have written and completed entire applications in the amount of time spend dissecting or fixing O/R implementation concepts.  What happened to KISS?  "Keep it Simple Silly"  If you are dissecting a tool or library to this degree to get it to work right for you and understand it, then throw it in the recycle bin!  That's what my mom did when the VCR had too many buttons, options, and controls.  User friendly is not just for end users.</description>
		<content:encoded><![CDATA[<p>The sheer fact that Max and Brian had to discuss/debate so many details about hibernate &amp; O/R concept is proof in and of itself that this is not KISS.<br />
Brian and also Max may be experts at hibernate and I appreciate the knowledge if I have to use Hibernate to get my paycheck.  But,<br />
I could have written and completed entire applications in the amount of time spend dissecting or fixing O/R implementation concepts.  What happened to KISS?  &#8220;Keep it Simple Silly&#8221;  If you are dissecting a tool or library to this degree to get it to work right for you and understand it, then throw it in the recycle bin!  That&#8217;s what my mom did when the VCR had too many buttons, options, and controls.  User friendly is not just for end users.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: HibernateSucks</title>
		<link>http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-77974</link>
		<dc:creator>HibernateSucks</dc:creator>
		<pubDate>Wed, 22 Apr 2009 21:36:17 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-77974</guid>
		<description>Brian may be too nice to say this, but I'm not.

Max, you're an idiot.</description>
		<content:encoded><![CDATA[<p>Brian may be too nice to say this, but I&#8217;m not.</p>
<p>Max, you&#8217;re an idiot.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: HibernateSucks</title>
		<link>http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-77973</link>
		<dc:creator>HibernateSucks</dc:creator>
		<pubDate>Wed, 22 Apr 2009 21:33:01 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-77973</guid>
		<description>OMG, Hibernate sucks so bad. Ever see any performance benchmarks with this crap? It's slower every time--EVERY TIME (which should not come as a shock at all). And the slowness is equal to or more than the differences between many different database types. That's right--it almost makes the performance of your particular database a moot issue, because the real question regarding performance is, "Are you using Hibernate?"

If you are, you're guaranteed headaches, problems, more work, and PISS POOR performance. The end.</description>
		<content:encoded><![CDATA[<p>OMG, Hibernate sucks so bad. Ever see any performance benchmarks with this crap? It&#8217;s slower every time&#8211;EVERY TIME (which should not come as a shock at all). And the slowness is equal to or more than the differences between many different database types. That&#8217;s right&#8211;it almost makes the performance of your particular database a moot issue, because the real question regarding performance is, &#8220;Are you using Hibernate?&#8221;</p>
<p>If you are, you&#8217;re guaranteed headaches, problems, more work, and PISS POOR performance. The end.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sticky Bandit</title>
		<link>http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-33038</link>
		<dc:creator>Sticky Bandit</dc:creator>
		<pubDate>Thu, 02 Oct 2008 15:49:51 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-33038</guid>
		<description>Why anyone would use Hibernate for any project just shows that they don't know anything about software system design.  What do I gain from using Hibernate?  Nothing but a mess!  You will find that hibernate lovers don't really understand the power of a hash map or a result set.  Bulk data is easy.  Ask them if they would return 10 books back to the library one trip at a time in their car-book delivery object, DAO or whatever.  I why are we writing SQL on top of objects?  SQL is for Relational Databases.  If I do have objects, the last thing I want to do is go back to SQL again.  I just have to shake my head at the trends people follow.  :&#124;</description>
		<content:encoded><![CDATA[<p>Why anyone would use Hibernate for any project just shows that they don&#8217;t know anything about software system design.  What do I gain from using Hibernate?  Nothing but a mess!  You will find that hibernate lovers don&#8217;t really understand the power of a hash map or a result set.  Bulk data is easy.  Ask them if they would return 10 books back to the library one trip at a time in their car-book delivery object, DAO or whatever.  I why are we writing SQL on top of objects?  SQL is for Relational Databases.  If I do have objects, the last thing I want to do is go back to SQL again.  I just have to shake my head at the trends people follow.  :|</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles</title>
		<link>http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-10597</link>
		<dc:creator>Charles</dc:creator>
		<pubDate>Thu, 27 Mar 2008 20:03:43 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-10597</guid>
		<description>+1 to Brian for keeping a level, constructive, and informative discussion going.  Always better to attack the issues than the person.  So refreshing in cyberspace...</description>
		<content:encoded><![CDATA[<p>+1 to Brian for keeping a level, constructive, and informative discussion going.  Always better to attack the issues than the person.  So refreshing in cyberspace&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: aninymous</title>
		<link>http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-7780</link>
		<dc:creator>aninymous</dc:creator>
		<pubDate>Fri, 01 Feb 2008 06:49:04 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-7780</guid>
		<description>I dislike hibernate and I don't think it eases development. Developers may not need to consider writing the SQL (how hard it could be?) but they are the same time limited by hibernate 'rules'. Hibernate just has too many tricks. And it almost always creates unnecessary database queries:

Suppose we have two classes, Person and Address, and they have nbi-directional one-to-many relationship (one person having multiple addresses). Hibernate says we use the following to add a new address to a person:

Session session = ...;

Address newAddress = new Address();
Person person = session.get(...);
person.getAddresses().add(newAddress);  //</description>
		<content:encoded><![CDATA[<p>I dislike hibernate and I don&#8217;t think it eases development. Developers may not need to consider writing the SQL (how hard it could be?) but they are the same time limited by hibernate &#8216;rules&#8217;. Hibernate just has too many tricks. And it almost always creates unnecessary database queries:</p>
<p>Suppose we have two classes, Person and Address, and they have nbi-directional one-to-many relationship (one person having multiple addresses). Hibernate says we use the following to add a new address to a person:</p>
<p>Session session = &#8230;;</p>
<p>Address newAddress = new Address();<br />
Person person = session.get(&#8230;);<br />
person.getAddresses().add(newAddress);  //</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francois</title>
		<link>http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-5841</link>
		<dc:creator>Francois</dc:creator>
		<pubDate>Fri, 14 Dec 2007 01:00:12 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-5841</guid>
		<description>It's too bad Max gave you such a hard time with your post. There are so many other post about "how woderful hibernate is", there has to be others (like yours) outlining how hibernate can be difficult to offset the inbalance.  

I have used hibernate on 2 large projects, one where we designed the system from the ground up (hince the database was built for the object model) and another where we applied hibernate to a legacy product (thus the database had not object model design behind).  

In the first project, hibernate was a nice as it did all the work for us.  However, in terms of scalability, we hit a wall later once we realized how many queries it makes to keep its cache in sync with the DB.  Hibernate is still there, but we had to find many work around to scale.  Has someone said before on your posts, every framework have weaknesses, and finding them was not cheap for us.

On the second project, we had to throw hibernate out and move to commons.dbutils (something equivalent).  We realized that mapping hibernate to a legacy database structure was difficult and hibernate did not handle it. One can argue that the design of this database was bad, but there are many "bad" design out there and we need to continue maintaning them.  Nevertheless, I was committed to keep hibernate for this project until we reached a point where hibernate was throwing exception for bad code it generated.  No one answered my posting on their site, so I was forced to pull it out.  

Hibernate is a fine tool to get something up and running quickly and easily.  However, for large scale project with high performance requirements, I am doubtful (based on my experience) of its benefits.</description>
		<content:encoded><![CDATA[<p>It&#8217;s too bad Max gave you such a hard time with your post. There are so many other post about &#8220;how woderful hibernate is&#8221;, there has to be others (like yours) outlining how hibernate can be difficult to offset the inbalance.  </p>
<p>I have used hibernate on 2 large projects, one where we designed the system from the ground up (hince the database was built for the object model) and another where we applied hibernate to a legacy product (thus the database had not object model design behind).  </p>
<p>In the first project, hibernate was a nice as it did all the work for us.  However, in terms of scalability, we hit a wall later once we realized how many queries it makes to keep its cache in sync with the DB.  Hibernate is still there, but we had to find many work around to scale.  Has someone said before on your posts, every framework have weaknesses, and finding them was not cheap for us.</p>
<p>On the second project, we had to throw hibernate out and move to commons.dbutils (something equivalent).  We realized that mapping hibernate to a legacy database structure was difficult and hibernate did not handle it. One can argue that the design of this database was bad, but there are many &#8220;bad&#8221; design out there and we need to continue maintaning them.  Nevertheless, I was committed to keep hibernate for this project until we reached a point where hibernate was throwing exception for bad code it generated.  No one answered my posting on their site, so I was forced to pull it out.  </p>
<p>Hibernate is a fine tool to get something up and running quickly and easily.  However, for large scale project with high performance requirements, I am doubtful (based on my experience) of its benefits.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Huang</title>
		<link>http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-5730</link>
		<dc:creator>Mike Huang</dc:creator>
		<pubDate>Mon, 10 Dec 2007 20:07:19 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/06/hibernate-pitfalls-part-3/#comment-5730</guid>
		<description>Why Hibernate or other ORM anyway in first place? The first problem people facing is the performance when a joined query involves multi-tables. Hibernate executes hundreds of selects and painfully slow. commons.dbutils provides the balance between class/table mapping and flexibilities. Any ORM tools just add complexities and numerous pitfalls resulting maintainability nightmare.</description>
		<content:encoded><![CDATA[<p>Why Hibernate or other ORM anyway in first place? The first problem people facing is the performance when a joined query involves multi-tables. Hibernate executes hundreds of selects and painfully slow. commons.dbutils provides the balance between class/table mapping and flexibilities. Any ORM tools just add complexities and numerous pitfalls resulting maintainability nightmare.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
