Spring Generischer Dao-Klassenname

Ich habe ein benutzerdefiniertes generisches Dienst-DAO für mein Spring / Hibernate-Projekt konfiguriert - mit der Idee, dass ich es problemlos von meinen Controllern aus wiederverwenden kann.

Es sieht im Wesentlichen so aus:

public class DefaultService<T> {

private Class<T> e;

public String className(Class<T> e) {
    String clip = e.getName();
    clip = clip.substring(clip.lastIndexOf('.') + 1, clip.length());
    return clip;
}
public List<T> getAll(Integer status) {
    Session session = sessionFactory.getCurrentSession();
    Query query = session.createQuery("FROM " + className(e) + " WHERE status = " + status);
    return query.list();
}
...

Auf die verwiesen wird von:

@Autowired
public DefaultService<Address> addressService;
addressService.get(1);

DieString clip = e.getName() line löst eine Nullzeiger-Ausnahme aus. Ich kann das zum Laufen bringen, wenn ich die Klasse in den Attributbereich verschiebe (soaddressService.get(Address.class, 1) aber ich finde das etwas unordentlich, besonders wenn es mehrere verschiedene Klassen gibt, die angerufen werden.

Gibt es eine Möglichkeit, die Klasse dazu zu bringen, einen Wert korrekt zu generieren, ohne ihn wiederholt in alle meine Funktionen aufzunehmen?

Danke im Voraus.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage