Ich möchte UserDao Klasse GenericDAO erweitern, wo ich alle CRUD-Methoden haben werde. Ich habe Artikel von IBM gelesen: http://www.ibm.com/developerworks/java/library/j-genericdao/index.html, aber ich konnte es nicht implementieren. Könnte mir jemand ein Beispiel anhand meiner benutzerdefinierten UserDao-Klasse zeigen?Wie GenericDAO Klasse auf Hibernate implementieren
@Transactional(value="myTransactionManager")
public class UserDao {
@Qualifier("mySessionFactory")
public SessionFactoryImpl sessionFactory;
public void setSessionFactory(SessionFactoryImpl sessionFactory) {
this.sessionFactory = sessionFactory;
}
public List<UserEntity> getAll() {
Query query = sessionFactory.getCurrentSession().createQuery(
"from UserEntity ");
List<UserEntity> userList = query.list();
return userList;
}
public void updaet(UserEntity userEntity) {
sessionFactory.getCurrentSession().update(userEntity);
}
public void delete(UserEntity userEntity) {
sessionFactory.getCurrentSession().delete(userEntity);
}
public void save(UserEntity userEntity) {
sessionFactory.getCurrentSession().save(userEntity);
}
}
ich versuchte Klasse wie dieses
public class GenericDao{
@Qualifier("mySessionFactory")
public SessionFactoryImpl sessionFactory;
public void setSessionFactory(SessionFactoryImpl sessionFactory) {
this.sessionFactory = sessionFactory;
}
public <T> List<T> getAll(Class<T> t) {
Query query = sessionFactory.getCurrentSession().createQuery(
"from " + t.getName());
List<T> list = query.list();
return list;
}
public <T> void save(T t) {
sessionFactory.getCurrentSession().save(t);
}
public <T> void update(T t) {
sessionFactory.getCurrentSession().update(t);
}
public <T> void delete(T t) {
sessionFactory.getCurrentSession().delete(t);
}
}
zu schreiben, aber wenn ich versuche, Daten mit UserDao so zu ziehen:
public List<UserEntity> getAll() {
List<UserEntity> list = UserDao.findAll();
}
Eclipse-IDE List<UserEntity> list = UserDao.findAll();
geben Fehler für Zeile: Verfahren findAll()
ist für den Typ UserDao unterdefiniert.
Sie müssen den Typ GenericDao passieren, 'GenericDao 'und erweitert es, offensichtlich ... –
dambros
' UserDao' erweitert 'GenericDao' nicht Sie fügen die Generika der Klassendefinition nicht hinzu. 'GenericDao' –
Jens
UserDao erweitert GenericDao in der Beschreibung nicht. Aber wenn ich es erweitere gibt es Fehler wie beschrieben. –