Ich arbeite mit Hibernate und DTO, DAO Design Patterns (Java).Wie alle SubcriteriaList aus projectionCriteria in Hibernate (Java) zu entfernen - zu verhindern, Links Join
Ich habe eine Entity-Klasse und ein Attribut darin und sie sind mit @ManyToOne
Annotation definiert.
Ich möchte eine Zählung Abfrage erstellen und "tell" Ruhezustand "DO NOT JOIN" mit @ManyToOne
Tabellen
Während eine Zählung Abfrage erstellen:
(Long) crit.setProjection(Projections.count("id")).uniqueResult();
Die SQL exceute von Hibernate ist mit left join
drin .
Auch wenn ich explizit auf der @Id
Annotation von der Entitätsklasse zählen. Die tatsächliche Abfrage erscheint mit LEFT JOIN für alle anderen Tabellen.
Diese von Hibernate erstellte SQL-Abfrage ist nicht effizient, da es keinen Grund gibt, eine linke Verknüpfung zu erstellen, wenn @ManyToOne
festgelegt ist.
Nach dem Versuch, und das Lesen über Hibernate fand ich etwa aus FetchMode aber selbst wenn FetchMode.LAZY
.setFetchMode("brand", FetchMode.LAZY)
Die Sql von hiberante Einstellung nach links in ihm beitreten zu haben.
Ich habe auch das Foto von debug angefügt, das alle SubcriteriaList zeigt, die unter projektionCriteria ist.
Wie kann ich Hibernate DO NOT linken Join-Tabellen von Entity-Klasse? (ohne SQL-Abfrage selbst zu schreiben)?
public Response findAll() {
Criteria crit = getDtoCriteria();
}
public Criteria getDtoCriteria() {
return getDtoCriteria(getDtoClass(), getSession());
}
public Criteria getDtoCriteria(Class clazz, Session session) {
Criteria crit = createEntityCriteria(session);
setProjecttionForDto(crit, true, clazz);
return crit;
}
Das alles sind meine Teilkriterien
[Subcriteria(bran*******ance:bran*******ance), Subcriteria(buc*****:buc*****), Subcriteria(br****:br****), Subcriteria(dyn***:dyn***), Subcriteria(dyna*****.user:user)]
nur einen Gedanken: jede Chance auf ein anderes Unternehmen ohne manytoone Schaffung beitreten? – Apostolos
Ich arbeite mit einem Build in "@Service, @Controller etc ..." mit 2 Entity wird nichts Gutes tun. i haben das gleiche Problem für mehr als eine Entität – 2Big2BeSmall