Hibernate-Benennungsstrategie

7

Ich erstelle einen REST-Webservice mit Spring (Boot) und versuche, Hibernate als Orm-Mapper ohne XML-Konfiguration zu verwenden.

Ich habe es im Grunde genommen zum Laufen gebracht, aber ich stehe mit einem Konfigurationsproblem fest. Ich instanziere LocalContainerEntityManagerFactoryBean als @Bean in einer @ Konfigurationsdatei. Ich setze hibernate.ejb.naming_strategy wie im folgenden Beispiel - & gt; dies scheint zu funktionieren, um die Tabellen zu erstellen, wenn sie nicht existieren (Spaltennamen sind camelCase wie in meinen @Entity-Klassen), aber wenn eine Abfrage ausgeführt wird, "vergisst" der Ruhezustand diese Benennungskonfiguration und versucht, eine andere Art von Benennungsstrategie zu verwenden unter_score_attributes - & gt; Offensichtlich scheitern diese Abfragen. Gibt es noch eine andere Eigenschaft, die ich einstellen muss? Oder eine andere Möglichkeit zum Konfigurieren der Eigenschaften vorzugsweise ohne Hinzufügen einer cfg.xml oder persistence.xml?

%Vor%     
Alex 02.10.2013, 20:28
quelle

3 Antworten

22

HibernateJpaAutoConfiguration ermöglicht die Festlegung der Benennungsstrategie (und aller anderen JPA-Eigenschaften) über eine lokale externe Konfiguration. Zum Beispiel in application.properties :

%Vor%     
Dave Syer 04.11.2013, 14:39
quelle
0

Haben Sie versucht, diese bestimmte Eigenschaft mithilfe programmgesteuerter Eigenschaften festzulegen? Oder eine hibernate.properties Datei im Paketstamm? Oder eine JVM-Systemeigenschaft? Alle sind hier beschrieben.

>

Aus meiner Erfahrung gibt es manchmal Schwierigkeiten, Hibernate-Probleme zu diagnostizieren, wenn Sie darauf bestehen, kein XML zu verwenden (was auch meine Präferenz wäre). Wenn nichts anderes funktioniert, müssen Sie möglicherweise mindestens eine Konfigurationsdatei definieren.

    
Jeff Evans 29.10.2013 13:43
quelle
-2

Ich habe jetzt die Lösung.

%Vor%

Die JpaAutoConfiguration muss ausgeschlossen werden. Trotzdem denke ich, dass dies ein Fehler sein könnte, da er normalerweise automatisch "zurückstehen" sollte, wenn ich meine eigene @Configuration verwende.

    
Alex 29.10.2013 14:22
quelle