java - 如何在Spring boot 2.0中实现CrudRepository的自定义方法?

标签 java spring-mvc spring-boot repository

我发现这个问题之前已经被问过。但答案和文档都不适合我。我关注this文档。

我想向存储库添加 2 个自定义界面。我的代码一定做错了什么。

编译器给出错误:

Error:(18, 8) java: com.ma.home.service.BuyerPartyDetailsServiceImpl is not abstract and does not override abstract method deleteAll() in org.springframework.data.repository.CrudRepository.

自定义存储库:

  @Repository
  public interface CustomBuyerPartyDeatilsDAO {
    @Query("SELECT b FROM BuyerPartyDetails buyer WHERE LOWER(buyer.xmlFileName) = fileName")
    public List<BuyerPartyDetails> listByfileName(String fileName);

    @Query("SELECT b FROM BuyerPartyDetails buyer WHERE LOWER(buyer.buyerOrganisationName) = name")
    public BuyerPartyDetails getByBuyerPartyByName(String name);

}

存储库:

  @Repository
  public interface BuyerPartyDetailsDAO2 extends 
CrudRepository<BuyerPartyDetails, Long>, CustomBuyerPartyDeatilsDAO {

    public List<BuyerPartyDetails> listByfileName(String fileName);
    public BuyerPartyDetails getByBuyerPartyByName(String name);
}

服务:

   @Service
   public class BuyerPartyDetailsServiceImpl implements 
 BuyerPartyDetailsDAO2, 
  CustomBuyerPartyDeatilsDAO {


    @Autowired
    private BuyerPartyDetailsDAO2 buyerPartyDetailsDAO2;

    public BuyerPartyDetailsServiceImpl() {

    }

  // more implementation removed.  
 .......
 .......
 }

如果我提供 deleteAll() 的实现,它一一询问所有CrudRepository方法如 save() , saveAll() , findById() , findAll()

那么如何使用CrudRepository已经实现的方法?

最佳答案

解决此错误

com.ma.home.service.BuyerPartyDetailsServiceImpl is not abstract and does not override abstract method deleteAll() in org.springframework.data.repository.CrudRepository

您必须重写所有抽象方法并为它们提供实现才能使其正常工作。

如果不需要全部实现,那么您必须将 DAO 接口(interface)注入(inject)到服务中,并让服务实现自己的接口(interface)。

Spring 将通过提供您应该在应用程序上下文中配置的接口(interface)的适当实现来完成剩下的工作。

关于java - 如何在Spring boot 2.0中实现CrudRepository的自定义方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49365278/

相关文章:

spring-mvc - @PreAuthorize不会限制用户执行Access Controller操作

java - 如何使用 Java 正确准备 'HTTP Redirect Binding' SAML 请求?

java - Hibernate 中多个模式中的相同表

ajax - Spring MVC检测ajax请求

java - Spring 2.5 中的拦截器

hibernate - ManyToMany 关系导致 StackOverFlow 错误

spring-boot - 如何配置@PreAuthorize 以识别我登录用户的 ID?

javascript - 无法在spring security中加载静态内容

java - 如果用户尝试使用无效的用户名和密码登录超过 3 次,如何将用户转发到 "resetPassword"页面(STRUTS2)

java - Oracle SQL 开发人员 : Unable to find a JVM