2010-06-18 14 views
0

peut Hibernate générer des majuscules SQL? I.e. une option qui le faire envoyerEst-ce que Hibernate peut générer du SQL en majuscules?

SELECT table1_.prop1_ FROM my_table AS table1_; 

au lieu du courant

select table1_.prop1_ from my_table as table1_; 

que je considère beaucoup moins lisible, esp. pour de longues requêtes, HBN a tendance à cracher. Voir aussi https://forum.hibernate.org/viewtopic.php?f=1&t=932412

Merci

+0

est-il pas open source ne peut pas vous venez de c? changer le code source pour faire ce que vous voulez? – Gabe

+0

Bien sûr. Et avec toute nouvelle version, je le ferai encore et encore et encore. Nan. –

Répondre

1

Trouvé: Le roi de l'équipe Hibernate est strictement contre cette option:

http://opensource.atlassian.com/projects/hibernate/browse/HB-1070

Pour ceux qui cherchent pour cela, s'il vous plaît commentaire là (vous ne pouvez pas voter sur des questions fermées :()

Mise à jour:. Une autre solution consiste à remplacer les modèles de FreeMarker dans les années de mise en veille prolongée de .jar

+1

J'aime juste le commentaire :)) –

+0

Huh? Modèles FreeMarkers pour la génération SQL? Ce serait nouveau pour moi (à ma connaissance, Hibernate Tools utilise des modèles, pas Hibernate). –

+0

Vous avez raison, je l'ai confondu. –

2

Je ne sais pas que cela appliquera majuscule, mais il aide à la lisibilité. Dans votre hibernate.cfg.xml lieu ce qui suit dans votre élément <session-factory>:

<!--hibernate.cfg.xml --> 
<property name="format_sql">true</property> 
+0

Non, cela n'applique pas de majuscules ... –

3

Je ne suis pas au courant d'une façon de majuscules les mots-clés que hors-the-box. Mais vous pouvez écrire votre propre intercepteur et implémenter o.h.Interceptor#onPrepareStatement(String) pour transformer la chaîne sql comme vous le souhaitez.

+1

Vous devrez cependant effectuer un travail d'analyse sérieux pour éviter de mettre en majuscule des éléments qui doivent être laissés tels quels (par exemple, le mot "select" dans une clause where where). – cherouvim

+0

@cherouvim: En effet, ce n'est pas si trivial. Mais c'est clairement faisable. –

+0

Oui, faisable. Je l'ai fait pour ajouter des indices d'index. Probablement pas la peine de le faire, mais juste pour la capitalisation. Au moins en production. – cherouvim