Mit hibernate wie kann ich show_sql nur im Entwicklungsmodus aktivieren? Ich möchte, dass
<property name="show_sql">true</property>
für die Produktionsumgebung deaktiviert und für die Entwicklungsumgebung aktiviert werden.
Antworten
Zu viele Anzeigen?Sie sollten umweltbezogene Informationen in einem separaten Ordner aufbewahren Eigenschaften Datei. Diese Datei sollte von Ihrem hibernate.cfg.xml o applicationContext.xml .
Hier eine Beispieldatei
###########################################################
################DATABASE INFORMATION ######################
###########################################################
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/appDB1
jdbc.username=root
jdbc.password=root
# Set Hibernate properties
hibernate.show_sql=true
hibernate.format_sql=false
Auf ähnliche Weise können Sie weitere Konfigurationsinformationen hinzufügen. Diese Datei wird in verschiedenen Umgebungen unterschiedlich aussehen.
Ihrer Frage entnehme ich, dass Ihr Code zur Laufzeit weiß, dass er sich im "Entwicklungsmodus" befindet, denn sonst würden Sie einfach das Flag in der Konfigurationsdatei ändern.
In diesem Fall können Sie die Eigenschaft show_sql (oder jede andere Eigenschaft) zur Laufzeit programmatisch festlegen:
Configuration config = new Configuration();
config.setProperty(Environment.SHOW_SQL, "true");
config.buildSessionFactory();
...
dann müssen Sie nur true/false auswählen, je nachdem, ob Sie sich im Entwicklungsmodus befinden oder nicht.