Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 加载spring上下文时,不会创建存储库bean_Java_Hibernate_Spring Mvc - Fatal编程技术网

Java 加载spring上下文时,不会创建存储库bean

Java 加载spring上下文时,不会创建存储库bean,java,hibernate,spring-mvc,Java,Hibernate,Spring Mvc,我正在尝试创建存储库,但出现错误 我的界面存储库: public interface CallRepository extends JpaRepository<Call, Integer> { @Override @Transactional Call save(Call call); @Modifying @Transactional @Query("DELETE FROM Call c WHERE c.id=:id AND c.

我正在尝试创建存储库,但出现错误

我的界面存储库:

public interface CallRepository extends JpaRepository<Call, Integer> {

    @Override
    @Transactional
    Call save(Call call);

    @Modifying
    @Transactional
    @Query("DELETE FROM Call c WHERE c.id=:id AND c.subscriber.id=:subscriberId")
    int delete(@Param("id") int id, @Param("subscriberId") int subscriberId);

    @Query("SELECT Call FROM Call c WHERE  c.subscriber.id=:subscriberId")
    List<Call> getAll(@Param("subscriberId") int subscriberId);

    List<Call> getAllBySubscriberIdAndDateTimeBetween(int subscriberId, LocalDateTime startDateTime, LocalDateTime endDateTime);

} 
public接口调用存储库扩展了JpaRepository{
@凌驾
@交易的
呼叫保存(Call-Call);
@修改
@交易的
@查询(“从调用c中删除,其中c.id=:id和c.subscriber.id=:subscriberId”)
int delete(@Param(“id”)int-id、@Param(“subscriberId”)int-subscriberId);
@查询(“从呼叫c中选择呼叫,其中c.subscriber.id=:subscriberId”)
列出getAll(@Param(“subscriberId”)int subscriberId);
列出GetAllBySubscriberAndDateTimeBetween(int subscriberId、LocalDateTime startDateTime、LocalDateTime endDateTime);
} 
我的存储库类:

@Repository
public class CallRepositoryImpl {

    @Autowired
    private SubscriberRepository subscriberRepository;

    @Autowired
    private CallRepository repository;

    @Transactional
    public Call save(Call call, int subscriberId) {
        if (!call.isNew() && get(call.getId(), subscriberId) == null) {
            return null;
        }
        call.setSubscriber(subscriberRepository.getOne(subscriberId));
        return repository.save(call);
    }

    public Call get(int id, int subscriberId) {
        return repository.findById(id)
                .filter(t -> t.getSubscriber().getId() == subscriberId)
                .orElse(null);
    }

    public boolean delete(int id, int subscriberId) {
        return repository.delete(id, subscriberId) != 0;
    }

    public List<Call> getAll(int subscriberId) {
        return repository.getAll(subscriberId);
    }

    public List<Call> getBetweenDateTime(int subscriberId, LocalDateTime startDateTime, LocalDateTime endDateTime) {
        Objects.requireNonNull(startDateTime, "startDateTime must not be null");
        Objects.requireNonNull(endDateTime, "endDateTime must not be null");
        return repository.getAllBySubscriberIdAndDateTimeBetween(subscriberId, startDateTime, endDateTime);
    }

}
@存储库
公共类CallRepositoryImpl{
@自动连线
私有订阅库订阅库;
@自动连线
私有存储库;
@交易的
公用呼叫保存(呼叫呼叫,int subscriberId){
如果(!call.isNew()&&get(call.getId(),subscriberId)==null){
返回null;
}
call.setSubscriber(subscriberRepository.getOne(subscriberId));
返回repository.save(调用);
}
公共调用get(int-id,int-subscriberId){
返回repository.findById(id)
.filter(t->t.getSubscriber().getId()==subscriberId)
.orElse(空);
}
公共布尔删除(int-id,int-subscriberId){
返回存储库。删除(id,subscriberId)!=0;
}
公共列表getAll(int subscriberId){
返回repository.getAll(subscriberId);
}
公共列表getBetweenDateTime(int subscriberId、LocalDateTime startDateTime、LocalDateTime endDateTime){
Objects.requirennull(startDateTime,“startDateTime不能为null”);
requirennull(endDateTime,“endDateTime不能为空”);
返回repository.getAllBySubscriberAndDateTimeBetween(subscriberId、startDateTime、endDateTime);
}
}
加载spring上下文时,我得到一个错误:

创建名为“callRepositoryImpl”的bean时出错:未满足 通过字段“repository”表示的依赖关系;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为“callRepository”的bean:调用init方法 失败;嵌套异常为java.lang.IllegalArgumentException: 方法公共抽象java.util.List的查询验证失败 ru.subscribers.repository.events.CallRepository.getAll(int)

在类型为整数的数据库“id”中,在类型为整数的实体“id”中


告诉我可能是什么问题?

我不确定,但查询不应该是这样吗

@Query("SELECT c FROM Call c WHERE  c.subscriber.id=:subscriberId")

你做错了。请阅读有关如何创建自定义存储库的文档