采用GenericManager做业务处理的时候CGLIB报错.
项目中我把Service这层的类改了一下.定义了两个Service的父类.一个是:
- public interface GenericManager<T, PK extends Serializable> {
- public List<T> getAll();
- public T get(PK id);
- .......基本的CRUD方法
- }
- public class GenericManagerImpl<T, PK extends Serializable> implements GenericManager<T, PK> {
- protected BaseGenericHibernateDAO<T, PK> baseGenericHibernateDAO;
- public GenericManagerImpl(BaseGenericHibernateDAO<T, PK> baseGenericHibernateDAO) {
- this.baseGenericHibernateDAO = baseGenericHibernateDAO;
- }
- 对应实现上面的接口CRUD方法
- }
是Spring AOP的问题.主要是出现在事务这块,由于我用的是Spring2.0 AOP 来声明事务.在声明事务的时候我把taget-prent-class="true" 了,但事实上不能为true.去掉这个就OK了因为要针对接口代理.