si je règle
true
Dans mon fichier de configuration hibernate.cfg.xml dans la console, je peux voir le SQL.
Mais ce n’est pas du vrai SQL … Puis-je voir le code SQL qui sera transmis directement à la firebase database?
Exemple:
je vois
select this_.code from true.employee this_ where this_.code=?
Puis-je voir
select employee.code from employee where employee.code=12
le vrai SQL?
Puis-je voir (…) le vrai SQL
Si vous voulez voir le SQL envoyé directement à la firebase database (formaté comme votre exemple), vous devrez utiliser un proxy de pilote jdbc tel que P6Spy (ou log4jdbc ).
Vous pouvez également activer la journalisation des catégories suivantes (en utilisant un fichier log4j.properties
ici):
log4j.logger.org.hibernate.SQL=DEBUG log4j.logger.org.hibernate.type=TRACE
Le premier est équivalent à hibernate.show_sql=true
, le second imprime entre autres les parameters liés.
log4j.logger.org.hibernate=INFO, hb log4j.logger.org.hibernate.SQL=DEBUG log4j.logger.org.hibernate.type=TRACE log4j.logger.org.hibernate.hql.ast.AST=info log4j.logger.org.hibernate.tool.hbm2ddl=warn log4j.logger.org.hibernate.hql=debug log4j.logger.org.hibernate.cache=info log4j.logger.org.hibernate.jdbc=debug log4j.appender.hb=org.apache.log4j.ConsoleAppender log4j.appender.hb.layout=org.apache.log4j.PatternLayout log4j.appender.hb.layout.ConversionPattern=HibernateLog --> %d{HH:mm:ss} %-5p %c - %m%n log4j.appender.hb.Threshold=TRACE
true true true
Certains frameworks utilisent persistence.xml
:
Si vous voyez déjà le code SQL en cours d’impression, cela signifie que vous avez le code ci-dessous dans votre fichier hibernate.cfg.xml:
true
Pour imprimer également les parameters de liaison, ajoutez ce qui suit à votre fichier log4j.properties:
log4j.logger.net.sf.hibernate.type=debug
Il convient de noter que le code que vous voyez est envoyé à la firebase database en l’état, les requêtes sont envoyées séparément pour empêcher l’injection SQL. AFAIK Le? les marques sont des espaces réservés qui sont remplacés par les parameters num par la firebase database, et non par mise en veille prolongée.
select this_.code from true.employee this_ where this_.code=?
est ce qui sera envoyé à votre firebase database.
this_
est un alias pour cette instance de la table employee
.