I Frühling bin mit der Verdrahtung Abhängigkeiten speziell für DAO-Klassen, die Hibernate verwenden, aber ich bin eine Ausnahme erhalten, die hat mich verwirrt:Proxy kann nicht für die Klasse geworfen werden
$ Proxy58 kann nicht auf UserDao gegossen werden
Mein DAO ist wie folgt konfiguriert:
<bean id="userDao" class="com.domain.app.dao.UserDao">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
und ich habe eine Schnittstelle, abstrakte Basisklasse und eine endgültige Umsetzung wie folgt.
Schnittstelle:
public interface Dao {
public void save(Object object);
public Object load(long id);
public void delete(Object object);
public void setSessionFactory(SessionFactory sessionFactory);
}
abstrakte Basisklasse:
public abstract class BaseDao implements Dao {
private SessionFactory sessionFactory;
@Transactional
@Override
public void save(Object object) {
PersistentEntity obj = (PersistentEntity) object;
currentSession().saveOrUpdate(obj);
}
@Transactional
@Override
public abstract Object load(long id);
@Transactional
@Override
public void delete(Object object) {
// TODO: this method!
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Session currentSession() {
return sessionFactory.getCurrentSession();
}
}
Umsetzung:
public class UserDao extends BaseDao implements Dao {
@Transactional(readOnly=true)
@Override
public Object load(long id) {
Object user = currentSession().get(User.class, id);
return user;
}
}
Die folgende wirft die Ausnahme oben erwähnt:
UserDao dao = (BenutzerDao) context.getBean ("userDao");
Dies ist jedoch nicht werfen eine Ausnahme:
Dao dao = (Dao) context.getBean ("userDao");
Wenn jemand Hilfe oder Anleitung anbieten kann, warum diese Ausnahme passiert, wäre ich sehr dankbar.
möglich Duplikat von [$ Proxy25 kann nicht in meine Klasse Spring Framework umgewandelt werden] (http://stackoverflow.com/questions/5702364/proxy25-cannot-be-cast-to-my-class-spring-framework) – artbristol