6 Stimmen

Hibernate und wie man die Namensänderung von Modals vermeidet

Ich verwende Hibernate seit ein paar Jahren, bin mir aber nicht sicher, was die Verwendung von Query und Criteria angeht.

Ich habe verstanden, dass eine der Stärken von Hibernate sind, um den Feldnamen an einem Ort zu steuern. Wenn ich den folgenden Code haben:

List cats = sess.createCriteria(Cat.class)
.add( Restrictions.like("name", "Fritz%") )
.add( Restrictions.between("weight", minWeight, maxWeight) )
.list();

Was passiert, wenn ich den "Namen" der Katze im Java-Objekt ändere?

Selbst bei Verwendung von refactor replace (wie in Elipse) wird das Element nicht als etwas erkannt, das geändert werden muss!

Wenn ja, wie pflegen Sie die Feldnamen in Java?

3voto

Aravind Yarram Punkte 76365

Ich glaube, typsichere Abfragen werden in der Hibernate-spezifischen API nicht unterstützt. JPA 2 hat jedoch Unterstützung für sie. Lesen Sie dies: Dynamische, typsichere Abfragen in JPA 2.0

0voto

tglman Punkte 475

Ich habe das gleiche Problem in der Vergangenheit, und tatsächlich gibt es keine Möglichkeit, eine typisierte und refaktor-resistente (Name ändern) Referenz eines Feldes in Java haben, so ist weder möglich, haben eine Abfrage-Builder, die dies erlauben, aber ich habe versucht, eine Implementierung eines Abfrage-Builder zu bauen, die mit einigen Workaround versuchen, Ihnen zu erlauben, Typ sicher und refaktor-resistente Abfrage zu schreiben, es ist Name ObjectQuery und Sie können einige Informationen über gefunden aquí .

Lassen Sie mich wissen, ob es Ihren Anwendungsfall löst!

offensichtlich ist nichts von Standard, so dass, wenn Sie etwas von Standard suchen, ist besser JPA Typesafe, aber es nicht die gleiche Macht haben!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X