我正在尝试将我的项目升级到Spring 5.0.6和Spring Data 2.0.6,我们正在使用WebSphere托管的JPA 2.1
在创建Spring上下文时获得以下异常:
[5/29/18 6:30:41:929 CDT] 00000052 SystemOut O 06:30:41.876 [默认值:5] ERROR org.springframework.web.context.ContextLoader - 上下文初始化失败 org.springframework.beans.factory.UnsatisfiedDependencyException:使用name' userService'创建bean时出错:通过字段' userRepository'表达的不满意的依赖关系嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有类型' com.mmm.arc.dao.UserRepository'的限定bean。可用:预计至少有1个豆有资格作为autowire候选者。
...
@Transactional(propagation = Propagation.REQUIRED )
public class UserServiceImpl implements UserService, UserDetailsService {
@PersistenceContext
private EntityManager em;
@Autowired
UserRepository userRepository;
}
public interface UserRepository extends JpaRepository<User, String>, JpaSpecificationExecutor< User >,UserRepositoryCustom{
}
public class UserRepositoryImpl implements UserRepositoryCustom{
@PersistenceContext
EntityManager em;
-----------methods
}
架构中的我没有提到任何弹簧版本
<jpa:repositories base-package="repo class package" /><bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory">
<property name="persistenceUnitName" value="persistance unit name"/>
<property name="dataSource" ref="dataSource"/>
</bean>
我们有单独的persistence.xml文件来映射所有基于完全注释的实体
答案 0 :(得分:0)
您的bean UserRepositoryImpl
未实现interface UserRepository
,这是UserServiceImpl
正在使用的类型。因此,我认为实际上没有在任何地方创建UserRepository
实例。
也许您打算将UserRepositoryImpl
改为implement UserRespository
而不是UserRepositoryCustom
?