<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Why Hibernate is so much more powerful than JDBC</title>
	<atom:link href="http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/</link>
	<description>Softwaredevelopment, Projectmanagement, Qualitymanagement and all things &#34;schauderhaft&#34;</description>
	<lastBuildDate>Tue, 07 Feb 2012 23:24:32 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: lgags2502pair3dglasses</title>
		<link>http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/comment-page-1/#comment-3524</link>
		<dc:creator>lgags2502pair3dglasses</dc:creator>
		<pubDate>Tue, 24 May 2011 22:11:08 +0000</pubDate>
		<guid isPermaLink="false">http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/#comment-3524</guid>
		<description>Cools_Web_Thank_for_shared</description>
		<content:encoded><![CDATA[<p>Cools_Web_Thank_for_shared</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cheap Aion kinah</title>
		<link>http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/comment-page-1/#comment-277</link>
		<dc:creator>cheap Aion kinah</dc:creator>
		<pubDate>Wed, 07 Oct 2009 05:08:15 +0000</pubDate>
		<guid isPermaLink="false">http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/#comment-277</guid>
		<description>But also in many cases the SQL skills on a java heavy team arn’t that great, so it is still beneficial to get 98% of the sql generated, working just fine. So you can use the extra time for tuning the queries, that really cause a problem.</description>
		<content:encoded><![CDATA[<p>But also in many cases the SQL skills on a java heavy team arn’t that great, so it is still beneficial to get 98% of the sql generated, working just fine. So you can use the extra time for tuning the queries, that really cause a problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dofus kamas</title>
		<link>http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/comment-page-1/#comment-276</link>
		<dc:creator>dofus kamas</dc:creator>
		<pubDate>Wed, 07 Oct 2009 05:04:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/#comment-276</guid>
		<description>You have many aproaches in optimizing the sql statements generated by hibernate: (and I assume similiar features for comparable ORM tools):</description>
		<content:encoded><![CDATA[<p>You have many aproaches in optimizing the sql statements generated by hibernate: (and I assume similiar features for comparable ORM tools):</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: wow gold</title>
		<link>http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/comment-page-1/#comment-138</link>
		<dc:creator>wow gold</dc:creator>
		<pubDate>Fri, 20 Feb 2009 05:01:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/#comment-138</guid>
		<description>A merry heart goes all the way</description>
		<content:encoded><![CDATA[<p>A merry heart goes all the way</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mert Can Akkan</title>
		<link>http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/comment-page-1/#comment-81</link>
		<dc:creator>Mert Can Akkan</dc:creator>
		<pubDate>Fri, 28 Nov 2008 14:05:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/#comment-81</guid>
		<description>One more vote for ORM, 
Use objects and relations not tables and foreign keys for more self documenting code and rapid development.

http://www.altuure.com/2008/11/12/object-model-vs-database-schema-design/
http://www.altuure.com/2008/10/22/why-orm-cause/</description>
		<content:encoded><![CDATA[<p>One more vote for ORM,<br />
Use objects and relations not tables and foreign keys for more self documenting code and rapid development.</p>
<p><a href="http://www.altuure.com/2008/11/12/object-model-vs-database-schema-design/">http://www.altuure.com/2008/11/12/object-model-vs-database-schema-design/</a><br />
<a href="http://www.altuure.com/2008/10/22/why-orm-cause/">http://www.altuure.com/2008/10/22/why-orm-cause/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jens Schauder</title>
		<link>http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/comment-page-1/#comment-80</link>
		<dc:creator>Jens Schauder</dc:creator>
		<pubDate>Fri, 28 Nov 2008 14:01:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/#comment-80</guid>
		<description>You have many aproaches in optimizing the sql statements generated by hibernate: (and I assume similiar features for comparable ORM tools):

- You can fiddle with the used dialect if you find something wrong with the generated sql on a fundamental level.
- You can add sql snippets for calculating single attributes. Here combining analytic functions and hibernate works just great.
- You can define custom sql statements to be used for CRUD (http://hibernate.org/hib_docs/v3/reference/en/html/querysql-cud.html) I had to look up that myself
- you can obtain a jdbc connection and do whatever you like with it.

I am well aware of features like rollups, cubes and analytic functions. (e.g /2008/08/20/sql-tricks-3-intervall-join/). And they sure come in handy with reporting / datawarehouse style application. 

But also in many cases the SQL skills on a java heavy team arn&#039;t that great, so it is still beneficial to get 98% of the sql generated, working just fine. So you can use the extra time for tuning the queries, that really cause a problem.</description>
		<content:encoded><![CDATA[<p>You have many aproaches in optimizing the sql statements generated by hibernate: (and I assume similiar features for comparable ORM tools):</p>
<p>- You can fiddle with the used dialect if you find something wrong with the generated sql on a fundamental level.<br />
- You can add sql snippets for calculating single attributes. Here combining analytic functions and hibernate works just great.<br />
- You can define custom sql statements to be used for CRUD (<a href="http://hibernate.org/hib_docs/v3/reference/en/html/querysql-cud.html">http://hibernate.org/hib_docs/v3/reference/en/html/querysql-cud.html</a>) I had to look up that myself<br />
- you can obtain a jdbc connection and do whatever you like with it.</p>
<p>I am well aware of features like rollups, cubes and analytic functions. (e.g /2008/08/20/sql-tricks-3-intervall-join/). And they sure come in handy with reporting / datawarehouse style application. </p>
<p>But also in many cases the SQL skills on a java heavy team arn&#8217;t that great, so it is still beneficial to get 98% of the sql generated, working just fine. So you can use the extra time for tuning the queries, that really cause a problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/comment-page-1/#comment-78</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Fri, 28 Nov 2008 13:17:38 +0000</pubDate>
		<guid isPermaLink="false">http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/#comment-78</guid>
		<description>Hibernate is certainly very powerful but one question remains to be answered: how can I optimize the generated sql queries to benefit from the full power of the underlying database engine ?

Precision: I&#039;m talking of databases with tables having millions of rows. Having optimized queries is a necessity.


To my knowledge :

1 - If you use ORM tools such as Hibernate and others, you have nearly no way to optimize the text of sql queries that are sent to the db engine. Just buy new hardware with more CPUs, more RAM and store your db in cache. I do not call this &quot;a solution&quot; but it may be ok for you, it depends on your cash.

2 - If you can customize the text of the sql queries, then you can unleash the power of your database engine (Oracle, SqlServer, MySql, ...): they all have very powerful and very little-known capabilities such as analytical operators, cube operators and such.

You may also decide if, and when, argument binding with JDBC is a good thing or not (eg: on Oracle, binding is considered &quot;good&quot; on OLTP with 100&#039;s or 1 000&#039;s requests per second - but it can be considered &quot;bad&quot; in other environments such as web frontends, DW, ... because the query optimizer can not make the full use of table and index meta-data such as histograms or skew of the values stored in tables and indexes - that makes the difference between 10 seconds query run time, or sub-second run time).

==&gt; Please correct me if Hibernate permits easy customization and maintenance of the sql queries sent to the database.


For the ones who wish to know more on that subject, you may Google on &quot;group by rollup&quot;, &quot;group by cube&quot;, &quot;group by grouping sets&quot;, &quot;rank&quot;, &quot;dense_rank&quot;, &quot;lag&quot;, &quot;lead&quot;.

I work with Oracle but other database engines have the same sort of extensions - this is not Oracle-specific.

You may also read http://www.nocoug.org/download/2001-11/8i_analytical_features.ppt - this is based on a (very) old Oracle version but foundations still hold true.

IMPORTANT: as an exercise, at each slide, try to write the same query using only what is called &quot;standard SQL&quot; (i.e. without analytical operators): when dealing with LAG and LEAD operators for example, or grouped running totals, you may discover new horizons.</description>
		<content:encoded><![CDATA[<p>Hibernate is certainly very powerful but one question remains to be answered: how can I optimize the generated sql queries to benefit from the full power of the underlying database engine ?</p>
<p>Precision: I&#8217;m talking of databases with tables having millions of rows. Having optimized queries is a necessity.</p>
<p>To my knowledge :</p>
<p>1 &#8211; If you use ORM tools such as Hibernate and others, you have nearly no way to optimize the text of sql queries that are sent to the db engine. Just buy new hardware with more CPUs, more RAM and store your db in cache. I do not call this &#8220;a solution&#8221; but it may be ok for you, it depends on your cash.</p>
<p>2 &#8211; If you can customize the text of the sql queries, then you can unleash the power of your database engine (Oracle, SqlServer, MySql, &#8230;): they all have very powerful and very little-known capabilities such as analytical operators, cube operators and such.</p>
<p>You may also decide if, and when, argument binding with JDBC is a good thing or not (eg: on Oracle, binding is considered &#8220;good&#8221; on OLTP with 100&#8242;s or 1 000&#8242;s requests per second &#8211; but it can be considered &#8220;bad&#8221; in other environments such as web frontends, DW, &#8230; because the query optimizer can not make the full use of table and index meta-data such as histograms or skew of the values stored in tables and indexes &#8211; that makes the difference between 10 seconds query run time, or sub-second run time).</p>
<p>==&gt; Please correct me if Hibernate permits easy customization and maintenance of the sql queries sent to the database.</p>
<p>For the ones who wish to know more on that subject, you may Google on &#8220;group by rollup&#8221;, &#8220;group by cube&#8221;, &#8220;group by grouping sets&#8221;, &#8220;rank&#8221;, &#8220;dense_rank&#8221;, &#8220;lag&#8221;, &#8220;lead&#8221;.</p>
<p>I work with Oracle but other database engines have the same sort of extensions &#8211; this is not Oracle-specific.</p>
<p>You may also read <a href="http://www.nocoug.org/download/2001-11/8i_analytical_features.ppt">http://www.nocoug.org/download/2001-11/8i_analytical_features.ppt</a> &#8211; this is based on a (very) old Oracle version but foundations still hold true.</p>
<p>IMPORTANT: as an exercise, at each slide, try to write the same query using only what is called &#8220;standard SQL&#8221; (i.e. without analytical operators): when dealing with LAG and LEAD operators for example, or grouped running totals, you may discover new horizons.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jens Schauder</title>
		<link>http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/comment-page-1/#comment-77</link>
		<dc:creator>Jens Schauder</dc:creator>
		<pubDate>Fri, 28 Nov 2008 12:46:51 +0000</pubDate>
		<guid isPermaLink="false">http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/#comment-77</guid>
		<description>But every plane with more than one engine is more powerful than a single engine!.</description>
		<content:encoded><![CDATA[<p>But every plane with more than one engine is more powerful than a single engine!.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Hofmann</title>
		<link>http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/comment-page-1/#comment-76</link>
		<dc:creator>David Hofmann</dc:creator>
		<pubDate>Fri, 28 Nov 2008 12:27:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.schauderhaft.de/2008/11/27/why-hibernate-is-so-much-more-powerful-than-jdbc/#comment-76</guid>
		<description>Nobody can say that an airplane is more powerful than it&#039;s engines !</description>
		<content:encoded><![CDATA[<p>Nobody can say that an airplane is more powerful than it&#8217;s engines !</p>
]]></content:encoded>
	</item>
</channel>
</rss>

