我需要一个简单地将记录保存到数据库的存储库,因此我编写了一个扩展CrudRepository
但只实现save方法的自定义通用基本存储库,如here所述。
@NoRepositoryBean
public interface PersistingRepository<T, ID extends Serializable> extends CrudRepository<T, ID> {
T save(T item);
}
然而,我的编译器抱怨&#34;保存(T)在&#39; PersistingRepository&#39;冲突与拯救(S)&#39; in&#39; org.springframework.data.repository.CrudRepository&#39 ;;两种方法都有相同的擦除,但都没有覆盖其他方法&#34;
研究问题后,我发现了这些SO帖子:this和this,它们将责任归咎于spring-data-commons
和spring-data-jpa
之间的依赖性问题。将我的spring-boot-starter-parent
版本更新为1.5.7.RELEASE
会导致这些依赖项更新为MavenCentral上可用的最新版本(公共:1.13.7,jpa:1.11.7),但删除类仍然存在。
所以我的问题是如何解决这种依赖冲突?
答案 0 :(得分:1)
而不是扩展CrudRepostory扩展其基接口Repository,只需定义要公开的方法。确保它与CrudRepository
中定义的方法的签名相匹配Spring文档定义了如何在以下链接中执行此操作。查找1.2.1定义存储库接口
部分https://docs.spring.io/spring-data/data-commons/docs/1.6.1.RELEASE/reference/html/repositories.html