<?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 1</title>
	<atom:link href="http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/feed/" rel="self" type="application/rss+xml" />
	<link>http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/</link>
	<description>Brian Pontarelli</description>
	<pubDate>Sun, 14 Mar 2010 14:00:24 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Gennadi</title>
		<link>http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-91968</link>
		<dc:creator>Gennadi</dc:creator>
		<pubDate>Wed, 30 Sep 2009 01:42:28 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-91968</guid>
		<description>In addition what have already been said about Hibernate – the evil is in Dynamic SQL and procedure caching on database server side. Please have a look at the article

http://www.sommarskog.se/dynamic_sql.html

and run sometimes these 2 queries on your SQL Server that used for Hibernate

select SUM(SC.pagesused)*8192/1024 as [Procedure buffer (execution plans) size Kbytes] from [master].dbo.syscacheobjects SC

select 
SC.cacheobjtype
,SC.objtype
,SC.sqlbytes
,SC.pagesused
,SC.usecounts
,SC.[sql]
from [master].dbo.syscacheobjects SC
--where usecounts = 1
ORDER BY SC.pagesused DESC

Pay attention to the size of RAM occupated by queries with usecounts = 1 - it is mostly wasted for nothing.</description>
		<content:encoded><![CDATA[<p>In addition what have already been said about Hibernate – the evil is in Dynamic SQL and procedure caching on database server side. Please have a look at the article</p>
<p><a href="http://www.sommarskog.se/dynamic_sql.html" rel="nofollow">http://www.sommarskog.se/dynamic_sql.html</a></p>
<p>and run sometimes these 2 queries on your SQL Server that used for Hibernate</p>
<p>select SUM(SC.pagesused)*8192/1024 as [Procedure buffer (execution plans) size Kbytes] from [master].dbo.syscacheobjects SC</p>
<p>select<br />
SC.cacheobjtype<br />
,SC.objtype<br />
,SC.sqlbytes<br />
,SC.pagesused<br />
,SC.usecounts<br />
,SC.[sql]<br />
from [master].dbo.syscacheobjects SC<br />
&#8211;where usecounts = 1<br />
ORDER BY SC.pagesused DESC</p>
<p>Pay attention to the size of RAM occupated by queries with usecounts = 1 - it is mostly wasted for nothing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Carlos</title>
		<link>http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-85673</link>
		<dc:creator>Carlos</dc:creator>
		<pubDate>Thu, 13 Aug 2009 20:04:55 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-85673</guid>
		<description>I guess the person who is describing the pitfalls of Hibernate does not know he is describing the pitfalls of the Unit of Work pattern as described by Martin Fowler.

I suggest you read up on Unit of Work pattern as Hibernate carries it out in a great manner.</description>
		<content:encoded><![CDATA[<p>I guess the person who is describing the pitfalls of Hibernate does not know he is describing the pitfalls of the Unit of Work pattern as described by Martin Fowler.</p>
<p>I suggest you read up on Unit of Work pattern as Hibernate carries it out in a great manner.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jimmy</title>
		<link>http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-79456</link>
		<dc:creator>jimmy</dc:creator>
		<pubDate>Thu, 07 May 2009 13:21:05 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-79456</guid>
		<description>&#62;&#62;And “jimmy” if you mean to imply that Hibernate is not crap piled upon &#62;&#62;more crap internally (take a look at the awesome source code), you are &#62;&#62;either delusional or you have special needs.

Nope, I certainly did not mean to imply that.  I peeked at the hibernate architecture some years ago and rejected it.  Currently we are using EclipseLink for some aspects of our project.  It has some nice autogenerate features which so far works great on derby, SQLServer and PostgreSQL.  The real 'meat' of our relational model, however, is ROLAP and for that we're not using JPA.</description>
		<content:encoded><![CDATA[<p>&gt;&gt;And “jimmy” if you mean to imply that Hibernate is not crap piled upon &gt;&gt;more crap internally (take a look at the awesome source code), you are &gt;&gt;either delusional or you have special needs.</p>
<p>Nope, I certainly did not mean to imply that.  I peeked at the hibernate architecture some years ago and rejected it.  Currently we are using EclipseLink for some aspects of our project.  It has some nice autogenerate features which so far works great on derby, SQLServer and PostgreSQL.  The real &#8216;meat&#8217; of our relational model, however, is ROLAP and for that we&#8217;re not using JPA.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: HibernateSucks</title>
		<link>http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-77972</link>
		<dc:creator>HibernateSucks</dc:creator>
		<pubDate>Wed, 22 Apr 2009 21:18:17 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-77972</guid>
		<description>John Newman: "hibernate is good stuff if you aren’t too lazy/incompetent to figure it out. Spring’s hibernate template &#38; hibernate transaction manager are a big help."

Pathetic. They even need the Spring team's help getting their "framework" to a tolerable level of usability.

Have fun figuring out all of those retarded caveats while those idiots work on the next version of Crapbernate, and you have to start all over again. The rest of us will actually be completing our software projects in the mean time. ROFFLE</description>
		<content:encoded><![CDATA[<p>John Newman: &#8220;hibernate is good stuff if you aren’t too lazy/incompetent to figure it out. Spring’s hibernate template &amp; hibernate transaction manager are a big help.&#8221;</p>
<p>Pathetic. They even need the Spring team&#8217;s help getting their &#8220;framework&#8221; to a tolerable level of usability.</p>
<p>Have fun figuring out all of those retarded caveats while those idiots work on the next version of Crapbernate, and you have to start all over again. The rest of us will actually be completing our software projects in the mean time. ROFFLE</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: HibernateSucks</title>
		<link>http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-77970</link>
		<dc:creator>HibernateSucks</dc:creator>
		<pubDate>Wed, 22 Apr 2009 21:11:19 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-77970</guid>
		<description>Hibernate does suck. If it wants to be a crappy ORM tool, fine, do that. Stop bloating your damn libraries with "features" and CRAP that nobody wants or needs. STOP TRYING TO DO THE DATABASE'S JOB BETTER THAN IT DOES! If a database needs caching to improve performance, ORACLE or whoever is designing the database will determine that. They don't need some retarded "software improvers" trying to fix things that aren't broken, causing more problems in the mean time.

And "jimmy" if you mean to imply that Hibernate is not crap piled upon more crap internally (take a look at the awesome source code), you are either delusional or you have special needs.

Hibernate is for lazy developers who think they can avoid work by using some crap ORM tool. They fail to realize just how much time it costs them getting the ORM crap to do what it's supposed to do in the first place. And by the time you've learned it and become good with it--there's a new version out and you're a Hibernate tard again. If they had just focused on simplicity and sat down to do the work in the first place, they'd have been done before they reach the point where they discover new "issues" in Hibernate's caching, logging, performance, etc. AND even the latest college graduate would be able to understand how it works.

Hibernate = job security perhaps? That's about it.</description>
		<content:encoded><![CDATA[<p>Hibernate does suck. If it wants to be a crappy ORM tool, fine, do that. Stop bloating your damn libraries with &#8220;features&#8221; and CRAP that nobody wants or needs. STOP TRYING TO DO THE DATABASE&#8217;S JOB BETTER THAN IT DOES! If a database needs caching to improve performance, ORACLE or whoever is designing the database will determine that. They don&#8217;t need some retarded &#8220;software improvers&#8221; trying to fix things that aren&#8217;t broken, causing more problems in the mean time.</p>
<p>And &#8220;jimmy&#8221; if you mean to imply that Hibernate is not crap piled upon more crap internally (take a look at the awesome source code), you are either delusional or you have special needs.</p>
<p>Hibernate is for lazy developers who think they can avoid work by using some crap ORM tool. They fail to realize just how much time it costs them getting the ORM crap to do what it&#8217;s supposed to do in the first place. And by the time you&#8217;ve learned it and become good with it&#8211;there&#8217;s a new version out and you&#8217;re a Hibernate tard again. If they had just focused on simplicity and sat down to do the work in the first place, they&#8217;d have been done before they reach the point where they discover new &#8220;issues&#8221; in Hibernate&#8217;s caching, logging, performance, etc. AND even the latest college graduate would be able to understand how it works.</p>
<p>Hibernate = job security perhaps? That&#8217;s about it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: StickyBandit</title>
		<link>http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-77724</link>
		<dc:creator>StickyBandit</dc:creator>
		<pubDate>Mon, 20 Apr 2009 20:56:06 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-77724</guid>
		<description>Hibernate sucks!  It is not even worth talking about.</description>
		<content:encoded><![CDATA[<p>Hibernate sucks!  It is not even worth talking about.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jimmy</title>
		<link>http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-69490</link>
		<dc:creator>jimmy</dc:creator>
		<pubDate>Thu, 12 Mar 2009 14:36:47 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-69490</guid>
		<description>oh and by the way, EclipseLink kicks Hibernate's ass up and down the street, and considering the license of EclipseLink is superior and furthermore it's also JPA ref impl, I think you can safely dump Hibernate.
Fortunately I never lost any time with Hibernate, but I took a whiff of it a few years ago, and it reeked of wannabe.</description>
		<content:encoded><![CDATA[<p>oh and by the way, EclipseLink kicks Hibernate&#8217;s ass up and down the street, and considering the license of EclipseLink is superior and furthermore it&#8217;s also JPA ref impl, I think you can safely dump Hibernate.<br />
Fortunately I never lost any time with Hibernate, but I took a whiff of it a few years ago, and it reeked of wannabe.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jimmy</title>
		<link>http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-69488</link>
		<dc:creator>jimmy</dc:creator>
		<pubDate>Thu, 12 Mar 2009 14:34:05 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-69488</guid>
		<description>&#62;Instead, I found it was a pleasure to use iBatis as I had full controls over SQLs and my code was much more concise.

iBatis is a dumb toy.
Consider the fact that returning autogenerated keys requires ** different ** xml depending on the database (derby VS. sqlserver), what's the whole point of "shielding" yourself from DB vagaries if each DB has its own XML syntax?

Now get the spring wannabes in there, and you have a crap wrapper around a crap wrapper around pure JDBC.  That's at least 15 layers of crap!</description>
		<content:encoded><![CDATA[<p>&gt;Instead, I found it was a pleasure to use iBatis as I had full controls over SQLs and my code was much more concise.</p>
<p>iBatis is a dumb toy.<br />
Consider the fact that returning autogenerated keys requires ** different ** xml depending on the database (derby VS. sqlserver), what&#8217;s the whole point of &#8220;shielding&#8221; yourself from DB vagaries if each DB has its own XML syntax?</p>
<p>Now get the spring wannabes in there, and you have a crap wrapper around a crap wrapper around pure JDBC.  That&#8217;s at least 15 layers of crap!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Qiang</title>
		<link>http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-30374</link>
		<dc:creator>Qiang</dc:creator>
		<pubDate>Fri, 22 Aug 2008 17:55:10 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-30374</guid>
		<description>I tried to like hibernate but I finally gave up. It was really a painful to use it in my projects. The main reason I think it is too intrusive. It dictates the way you design your application. It blurs the boundary between database and applications. Database schema inevitably leaks into application's data model. The result is, if you change either data model or database schema, you have to change the other. And because hibernate's hbm is so complicated, changing database schema will make it painful to update the hbms. At last, Hibernate has too many caveats. You have to be very careful when writing beans for hibernate.

Instead, I found it was a pleasure  to use iBatis as I had full controls over SQLs and my code was much more concise.</description>
		<content:encoded><![CDATA[<p>I tried to like hibernate but I finally gave up. It was really a painful to use it in my projects. The main reason I think it is too intrusive. It dictates the way you design your application. It blurs the boundary between database and applications. Database schema inevitably leaks into application&#8217;s data model. The result is, if you change either data model or database schema, you have to change the other. And because hibernate&#8217;s hbm is so complicated, changing database schema will make it painful to update the hbms. At last, Hibernate has too many caveats. You have to be very careful when writing beans for hibernate.</p>
<p>Instead, I found it was a pleasure  to use iBatis as I had full controls over SQLs and my code was much more concise.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raveendran</title>
		<link>http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-21230</link>
		<dc:creator>Raveendran</dc:creator>
		<pubDate>Mon, 23 Jun 2008 18:37:55 +0000</pubDate>
		<guid isPermaLink="false">http://brian.pontarelli.com/2007/04/02/why-hibernate-sucks-part-1/#comment-21230</guid>
		<description>I think, the points discussed here are worthwhile. I don't know if hibernate is good or not but I was trying out something simple like this

			HibernateTemplate ht = getHibernateTemplate();
			ht.save( b );
			ht.flush();

and this resulted in all those mysterious errors that the article talks about.

I would definitely not prefer Hibernate over simple C++ or over the great ORM capabilities of Ruby on Rails. At least we have complete control of the exceptions and errors in the case of C++ or RoR. That way hibernate sucks, not even a good post in net for this problem from the Hibernate team and above all the team tries to defend themselves for their follies.</description>
		<content:encoded><![CDATA[<p>I think, the points discussed here are worthwhile. I don&#8217;t know if hibernate is good or not but I was trying out something simple like this</p>
<p>			HibernateTemplate ht = getHibernateTemplate();<br />
			ht.save( b );<br />
			ht.flush();</p>
<p>and this resulted in all those mysterious errors that the article talks about.</p>
<p>I would definitely not prefer Hibernate over simple C++ or over the great ORM capabilities of Ruby on Rails. At least we have complete control of the exceptions and errors in the case of C++ or RoR. That way hibernate sucks, not even a good post in net for this problem from the Hibernate team and above all the team tries to defend themselves for their follies.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
