Tôi đang sử dụng mùa xuân cho phụ thuộc hệ thống dây điện đặc biệt cho các lớp DAO sử dụng Hibernate, nhưng tôi nhận được một ngoại lệ mà đã cho tôi bối rối:Proxy không thể được đúc để CLASS
$ Proxy58 không thể được đúc để UserDao
My DAO được cấu hình như sau:
<bean id="userDao" class="com.domain.app.dao.UserDao">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
và tôi có một giao diện, lớp cơ sở trừu tượng và thực hiện cuối cùng như sau.
Interface:
public interface Dao {
public void save(Object object);
public Object load(long id);
public void delete(Object object);
public void setSessionFactory(SessionFactory sessionFactory);
}
Abstract Base Class:
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();
}
}
Thực hiện:
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;
}
}
Sau đây ném ngoại lệ nêu trên:
UserDao dao = (UserDao) context.getBean ("userDao");
này, tuy nhiên, không ném một ngoại lệ:
Dao dao = (Dao) context.getBean ("userDao");
Nếu có ai có thể cung cấp bất kỳ trợ giúp hoặc hướng dẫn nào về lý do ngoại lệ này xảy ra, tôi sẽ rất đánh giá cao.
bản sao có thể có của [$ Proxy25 không thể được truyền tới khung mùa xuân lớp học của tôi] (http://stackoverflow.com/questions/5702364/proxy25-cannot-be-cast-to-my-class-spring-framework) – artbristol