我在处理当前的Spring和Hibernate应用程序时遇到了另一个问题。我已经构建了我的DAO接口/类,以及我的服务接口/类,当然还有实体。只有在没有@Transactional的情况下,Spring/Hibernate应用程序才能正常工作
一切都被部署好,但只要我的@Transactional
注释添加到我的XXXServiceImpl班,我得到部署在以下异常(在Glassfish和Tomcat测试):
Caused by: java.lang.IllegalStateException: Cannot convert value of type [com.sun.proxy.$Proxy25 implementing net.dreamcode.bleevle.persistence.service.IntranetService,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised] to required type [net.dreamcode.bleevle.persistence.service.impl.IntranetServiceImpl] for property 'intranetService': no matching editors or conversion strategy found
当然,我试着找到有关的东西,我想这基本上是因为接口和类在添加注释时不匹配。但是我也尝试在我的界面上添加注释,这无助于解决问题,并产生了与上述相同的错误。
下面是从我的项目(BasicService
,UserService
和UserServiceImpl
)一些示例代码:
BasicService(接口):
public interface BasicService<T> {
T findById(String id);
void create(T entity);
void delete(T entity);
void update(T entity);
}
UserService(接口):
import net.dreamcode.bleevle.data.User;
public interface UserService extends BasicService<User> {
User findByName(String name);
}
个UserServiceImpl(类):
public class UserServiceImpl implements UserService {
@Autowired
UserDao userDao;
@Override
public User findByName(String name) {
return userDao.findByName(name);
}
@Override
public User findById(String id) {
return userDao.findById(id);
}
@Override
public void create(User entity) {
userDao.create(entity);
}
@Override
public void delete(User entity) {
userDao.delete(entity);
}
@Override
public void update(User entity) {
userDao.update(entity);
}
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
是否与这种模式(我想这是某种设计模式与服务,并道的东西)工作时做具体的事情?
任何形式的帮助,非常感谢。提前致谢!
非常感谢!即使我没有在我的类中使用IntranetServiceImpl属性,setter将实现作为参数。现在我得到了与MySQL不同的错误,但我想我可以自己解决,再次感谢你! – MrPixelDream