当前位置: 首页 > 知识库问答 >
问题:

spring-data bott:自定义存储库和开箱即用选项

巢烨
2023-03-14
public interface DomainRepository extends MongoRepository<Domain, Long>, DomainRepositoryCustomAnyName {
    Optional<Domain> findOne(Long id);
}

共有1个答案

冯哲彦
2023-03-14

我想我也遇到了同样的问题。我使用的不是MongoDB,而是PostgreSQL,但问题的原因可能是一样的。您链接到的站点上的示例没有使用findone,所以我不知道您是从哪里学到的。很多教程都是针对2.x.x之前的spring-data版本的。问题是,从1.11.8到2.0.0,存储库的接口和实现发生了很大变化,所以您的问题可能与版本问题有关。

从过去的某个地方到1.11.8,SimpleJpaRepository都有一个方法

public T findOne(ID id)

和对包装的支持,这将导致可选。这将符合您的代码。我测试了它,它在一个简单的例子中工作。当然我没有你的域对象等等。

public <S extends T> Optional<S> findOne(Example<S> example)
public Optional<T> findById(ID id)

将方法签名更改为

可选 findOne(示例 ex);

改用新方法:

 类似资料:
  • 在我的项目中有几个实体具有相同的属性(对于示例'name'),所以,有可能创建一个存储库,其中使用自定义的select(实体)?因此,我从JpaRepository扩展了我的存储库,我扩展了MyCustomJpaRepository,MyCustomJpaRepository也扩展了JpaRepository,使其能够从JpaRepository授予基本功能? TKS

  • 我有一个实体类称为和一个仓库声明如下: 自定义存储库的定义如下: 和 下面是另一个堆栈溢出问题中描述的内容:如何向Spring数据JPA添加自定义方法 现在,IntelliJ给了我一个警告: 我尝试将这些注释添加到中,但没有一个成功: 但都不管用。显然有些是错的,但我在试验。正确的注释是什么。 使用,我得到了以下错误:

  • 问题内容: 我正在尝试从Spring指南创建一个自定义查询:根据参考4.4自定义实现,使用REST访问MongoDB数据。但是我的自定义方法在存储库的REST接口(/ user / search)中不可用。 (例如,浏览器无法找到localhost:8080 / user / search / GetByKidsAge?age = 1) 有人可以帮我解决这个问题并给我一些建议吗?非常感谢 !! 下

  • 我发现对于减少样板非常有用,但它似乎给工作带来了麻烦。我现在试图用自定义的基类存储库扩展,而在启动时,Spring在正确实例化存储库方面遇到了问题。 我已经尝试了几个关于这个主题的变体,但是没有运气让事情成功地连线起来。我在Spring的问题跟踪器https://jira.spring.io/browse/datajpa-674上遇到了一个类似的问题,但没有关于修复的解释,只是对代码进行了重构,使

  • 我最终不得不在文件。定义通常非常繁琐: 注意上面gradle提供了一种定义常用maven存储库的好方法(即)。我想在插件或父gradle脚本中找到一种方法,在函数中或静态地定义存储库,然后在块中调用它:。 我缺乏groovy方面的知识,因此我不太了解解析groovy源代码所需的知识,我正在寻找一种很好的方法来实现这一点。我该怎么做? 我知道在父级gradle文件中,我可以使用或。我不想将这些mav

  • 如果你需要提供自定义文件存储 – 一个普遍的例子是在某个远程系统上储存文件 – 你可以通过定义一个自定义的储存类来实现。你需要遵循以下步骤: 1. 你的自定义储存类必须是django.core.files.storage.Storage的子类: from django.core.files.storage import Storage class MyStorage(Storage):