<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.1.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Commentaires sur : Hibernate - SQL natif, HQL ou API Criteria ?</title>
	<link>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/</link>
	<description>Un blog, c'est un blog !</description>
	<pubDate>Fri, 09 Jan 2009 01:25:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.2</generator>

	<item>
		<title>Par : Laurent Simon</title>
		<link>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-89</link>
		<author>Laurent Simon</author>
		<pubDate>Mon, 17 Jul 2006 23:36:38 +0000</pubDate>
		<guid>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-89</guid>
					<description>&lt;p&gt;Tout à fait d'accord avec tes conclusions.&lt;br /&gt; &lt;br /&gt; L'avantage de la compilation avec criteria est d'ailleurs tout à fait relatif. La syntaxe est contrôlée, mais pas les noms. Pour les requêtes statiques, il est possible de les contrôler intégralement en les externalisant sous forme de ressources puis en ajoutant une tâche spécifique qui les parse lors du build. Dans ce cas, elles deviennent plus fiables que les requêtes criteria.&lt;br /&gt; &lt;br /&gt; Ca me fait d'ailleurs penser que j'ai sous le coude un socle technique dans lequel on exprime tout en HQL (principe également valable pour SQL, EJBQL, JDOQL). Les requêtes dynamiques se traitent  sans avoir à écrire une seule instruction d'assemblage (sans &#34;if&#34; ou assimilé). Le tout est contrôlable intégralement lors du build (même les requêtes totalement dynamiques). Ca adresse la problématique que tu évoque en ramenant tout au même niveau de simplicité tout en optimisant les performances. Il faudrait peut être que je songe à extraire cette partie pour en faire un framework opensource...&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Tout à fait d&#8217;accord avec tes conclusions.</p>
<p> L&#8217;avantage de la compilation avec criteria est d&#8217;ailleurs tout à fait relatif. La syntaxe est contrôlée, mais pas les noms. Pour les requêtes statiques, il est possible de les contrôler intégralement en les externalisant sous forme de ressources puis en ajoutant une tâche spécifique qui les parse lors du build. Dans ce cas, elles deviennent plus fiables que les requêtes criteria.</p>
<p> Ca me fait d&#8217;ailleurs penser que j&#8217;ai sous le coude un socle technique dans lequel on exprime tout en HQL (principe également valable pour SQL, EJBQL, JDOQL). Les requêtes dynamiques se traitent  sans avoir à écrire une seule instruction d&#8217;assemblage (sans &quot;if&quot; ou assimilé). Le tout est contrôlable intégralement lors du build (même les requêtes totalement dynamiques). Ca adresse la problématique que tu évoque en ramenant tout au même niveau de simplicité tout en optimisant les performances. Il faudrait peut être que je songe à extraire cette partie pour en faire un framework opensource&#8230;</p>
]]></content:encoded>
				</item>
	<item>
		<title>Par : SeB</title>
		<link>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-94</link>
		<author>SeB</author>
		<pubDate>Tue, 18 Jul 2006 00:42:30 +0000</pubDate>
		<guid>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-94</guid>
					<description>&lt;p&gt;L'avantage de la compilation des appels à l'API Criteria est également désuet depuis que des outils tel que Hibernate Tools ajoutent le support de l'autocomplétion du HQL et permettent de valider/tester le HQL directement sur la base de données.&lt;/p&gt; &lt;p&gt;La tâche qui validerai les requêtes externalisées existe-t-elle déja ou faut-il l'implémenter soi-même ? ;-)&lt;/p&gt; &lt;p&gt;Ton socle technique me semble très intéressant. Si jamais tu trouves le temps et que tu le publies sous forme de projet Open Source, je serai intéressé pour le tester.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>L&#8217;avantage de la compilation des appels à l&#8217;API Criteria est également désuet depuis que des outils tel que Hibernate Tools ajoutent le support de l&#8217;autocomplétion du HQL et permettent de valider/tester le HQL directement sur la base de données.</p>
<p>La tâche qui validerai les requêtes externalisées existe-t-elle déja ou faut-il l&#8217;implémenter soi-même ? <img src='http://blog.lecacheur.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Ton socle technique me semble très intéressant. Si jamais tu trouves le temps et que tu le publies sous forme de projet Open Source, je serai intéressé pour le tester.</p>
]]></content:encoded>
				</item>
	<item>
		<title>Par : Laurent Simon</title>
		<link>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-95</link>
		<author>Laurent Simon</author>
		<pubDate>Tue, 18 Jul 2006 15:34:33 +0000</pubDate>
		<guid>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-95</guid>
					<description>&lt;p&gt;A ma connaissance cette tâche n'existe pas toute faite. Dans mon cas elle fait partie d'un socle technique très vaste, mais ça fait assez longtemps que je l'ai écrit. D'autres ont peut être publié des choses semblables depuis. Dans tous les cas, ça ne casse pas trois pattes à un canard. Quelques lignes de codes suffisent pour écrire une tâche ANT qui fait ça et l'écriture de la classe qui charge les requêtes externes à l'exécution est du même acabit.&lt;br /&gt; &lt;br /&gt; J'espère trouver le temps d'extraire cette partie du socle sous forme de framework indépendant. J’y avais pensé initialement en l’écrivant et c’est ton billet qui me le rappelle. Mais le temps, le temps, c’est toujours ce qui me fait défaut…&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>A ma connaissance cette tâche n&#8217;existe pas toute faite. Dans mon cas elle fait partie d&#8217;un socle technique très vaste, mais ça fait assez longtemps que je l&#8217;ai écrit. D&#8217;autres ont peut être publié des choses semblables depuis. Dans tous les cas, ça ne casse pas trois pattes à un canard. Quelques lignes de codes suffisent pour écrire une tâche ANT qui fait ça et l&#8217;écriture de la classe qui charge les requêtes externes à l&#8217;exécution est du même acabit.</p>
<p> J&#8217;espère trouver le temps d&#8217;extraire cette partie du socle sous forme de framework indépendant. J’y avais pensé initialement en l’écrivant et c’est ton billet qui me le rappelle. Mais le temps, le temps, c’est toujours ce qui me fait défaut…</p>
]]></content:encoded>
				</item>
	<item>
		<title>Par : SeB</title>
		<link>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-88</link>
		<author>SeB</author>
		<pubDate>Wed, 19 Jul 2006 00:58:07 +0000</pubDate>
		<guid>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-88</guid>
					<description>&lt;p&gt;Effectivement pour la tâche, son implémentation ne nous emmène pas loin. Je me renseignais au cas où, pour ne pas réinventer la roue. ;-)&lt;/p&gt; &lt;p&gt;Malheureusement, le temps est une denrée rare qui nous fait tous défaut. Si seulement nous pouvions faire un this.clone()...&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Effectivement pour la tâche, son implémentation ne nous emmène pas loin. Je me renseignais au cas où, pour ne pas réinventer la roue. <img src='http://blog.lecacheur.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Malheureusement, le temps est une denrée rare qui nous fait tous défaut. Si seulement nous pouvions faire un this.clone()&#8230;</p>
]]></content:encoded>
				</item>
	<item>
		<title>Par : chappy</title>
		<link>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-254</link>
		<author>chappy</author>
		<pubDate>Wed, 28 Mar 2007 22:36:52 +0000</pubDate>
		<guid>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-254</guid>
					<description>ou un fork !</description>
		<content:encoded><![CDATA[<p>ou un fork !</p>
]]></content:encoded>
				</item>
	<item>
		<title>Par : chappy</title>
		<link>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-255</link>
		<author>chappy</author>
		<pubDate>Wed, 28 Mar 2007 22:56:08 +0000</pubDate>
		<guid>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-255</guid>
					<description>en tout cas tres bon article et tu arrives au meme conclusion
que moi sur l'api hibernate :)
personnelement je prefere les critérias puisqu'on construit l'ast nous même à la différence du hql, donc meilleurs performances
++</description>
		<content:encoded><![CDATA[<p>en tout cas tres bon article et tu arrives au meme conclusion<br />
que moi sur l&#8217;api hibernate <img src='http://blog.lecacheur.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
personnelement je prefere les critérias puisqu&#8217;on construit l&#8217;ast nous même à la différence du hql, donc meilleurs performances<br />
++</p>
]]></content:encoded>
				</item>
	<item>
		<title>Par : SeB</title>
		<link>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-257</link>
		<author>SeB</author>
		<pubDate>Thu, 29 Mar 2007 07:49:55 +0000</pubDate>
		<guid>http://blog.lecacheur.com/2006/07/17/hibernate-sql-natif-hql-ou-api-criteria/#comment-257</guid>
					<description>Merci Chappy ! :-)

Au niveau des performances, je ne suis pas sûr que l'API Criteria soit plus rapide. En effet, il me semble que dernière cette API c'est du HQL qui est généré.

Par contre, il est vrai que le code écrit avec l'API Criteria sera plus rapide (et surtout plus lisible) que s'il devait construire lui-même la requête HQL avec des concaténations, etc...</description>
		<content:encoded><![CDATA[<p>Merci Chappy ! <img src='http://blog.lecacheur.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Au niveau des performances, je ne suis pas sûr que l&#8217;API Criteria soit plus rapide. En effet, il me semble que dernière cette API c&#8217;est du HQL qui est généré.</p>
<p>Par contre, il est vrai que le code écrit avec l&#8217;API Criteria sera plus rapide (et surtout plus lisible) que s&#8217;il devait construire lui-même la requête HQL avec des concaténations, etc&#8230;</p>
]]></content:encoded>
				</item>
</channel>
</rss>
