Zunächst einmal bin ich wirklich neu bei QueryDSL.
Ich verwende eine Spring + Hibernate Umgebung.
Das Problem, dem ich gegenüberstehe, besteht darin, dass ich ein GenericDAO erstellen muss, um alle grundlegenden CRUD-Operationen zu implementieren, aber ich bin mir nicht sicher, wie ich die statische Referenz von einer QEntity erhalten soll.
Die Struktur meiner Entitätsklasse sieht so aus:
@Entity //jpa
public class Entity extends AbstractEntity{
//Felder
...
}
public abstract class AbstractEntity{
//Logger
}
Die grundlegende Struktur einer von QueryDSL generierten Entität:
public class QEntity extends PEntity{
...
public static final QEntity entity = new QEntity("entity");
...
//Konstruktoren
}
Und das GenericDao würde so aussehen:
public class abstract GenericDao>{
//irgendeine Art von Methode, um die K.k (QEntity.entity) Referenz zu erhalten.
//CRUD-Operationen, die T und K verwenden
}
Ein Ansatz wäre die Verwendung von Reflection, aber ich bin kein Verfechter dieser Methode, insbesondere in diesem Fall.
Eine weitere Sache, über die ich mir nicht sicher bin, ist, ob es obligatorisch ist, die statische Referenz von einer QEntity zu verwenden, um Abfragen zu erstellen, oder ob es in Ordnung ist, wenn ich einen Konstruktoraufruf verwende, um ein neues Objekt zu erhalten. Außerdem, was bedeutet der String im Konstruktorparameter?
public QEntity(String variable) {
this(Entity.class, forVariable(variable), INITS);
}