Hallo,
stehe grad irgendwie auf dem Schlauch und komme nicht weiter, vielleicht könnt ihr mir helfen.
Habe mir für den Zugriff auf meine Datenbank eine Schicht aus DAO's über dem Hibernate gebaut, aufbauend auf einem generischen DAO-Objekt, so ähnlich wie hier:
https://www.hibernate.org/328.html#A3
funktioniert auch alles so weit, nur eine Sache bekomme ich nicht hin:
ich will eine Funktion erstellen, die Quasi als Parameter nur eine Entity-Klasse bekommt, und mir daraufhin ein parametrisiertes GenericDAO erstellt.
Vielleicht hilft ein wenig Pseudocode:
abstract class GenericDAO <T, ID extends Serializable> {
public T findByPrimaryKey(Integer id) {
T o;
suche o anhand id
return o;
}
+andere Funktionen
}
diese Klasse benutze ich als Basis-Klasse für meine anderen DAO's, z.B.
public class ProduktDAO extends GenericDAO<Produkt,Integer> {...}
was ich gerne erreichen möchte ist eine Funktion die in etwa sowas macht:
GenericDAO createGenericDAO(Produkt.class, Integer.class) {
GenericDAO dao=new GenericDAO<Produkt,Integer>() {};
return dao;
}
was syntaktisch natürlich so nicht geht, aber ich hoffe irgend jemand versteht was ich meine und hat einen Tipp für mich
Gruß
nero
stehe grad irgendwie auf dem Schlauch und komme nicht weiter, vielleicht könnt ihr mir helfen.
Habe mir für den Zugriff auf meine Datenbank eine Schicht aus DAO's über dem Hibernate gebaut, aufbauend auf einem generischen DAO-Objekt, so ähnlich wie hier:
https://www.hibernate.org/328.html#A3
funktioniert auch alles so weit, nur eine Sache bekomme ich nicht hin:
ich will eine Funktion erstellen, die Quasi als Parameter nur eine Entity-Klasse bekommt, und mir daraufhin ein parametrisiertes GenericDAO erstellt.
Vielleicht hilft ein wenig Pseudocode:
abstract class GenericDAO <T, ID extends Serializable> {
public T findByPrimaryKey(Integer id) {
T o;
suche o anhand id
return o;
}
+andere Funktionen
}
diese Klasse benutze ich als Basis-Klasse für meine anderen DAO's, z.B.
public class ProduktDAO extends GenericDAO<Produkt,Integer> {...}
was ich gerne erreichen möchte ist eine Funktion die in etwa sowas macht:
GenericDAO createGenericDAO(Produkt.class, Integer.class) {
GenericDAO dao=new GenericDAO<Produkt,Integer>() {};
return dao;
}
was syntaktisch natürlich so nicht geht, aber ich hoffe irgend jemand versteht was ich meine und hat einen Tipp für mich
Gruß
nero