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

处理存储库方法的spring方式[重复]

贺元明
2023-03-14

由于我对这个平台还不熟悉,所以我正在尝试找出Spring的工作方式。我有一个存储库声明如下:

public interface ScreenshotRepository extends JpaRepository<Screenshot, UUID>

我有几个查询方法在那里,但现在我想有另一个方法,不只是一个查询。该方法运行一个查询,如果找到一条记录,它就返回它,如果没有,它就用一些默认参数创建它。这种方法该何去何从?

我在文档中看到了自定义存储库实现,但因为它们与实际的jparepository是分开的,所以它们似乎不能访问数据库。

共有1个答案

阎功
2023-03-14

通过spring的方式,您可以创建一个服务,在该服务中自带存储库,并在服务中创建自定义函数,同时使用存储库执行查询

@Service
public class ScreenshotService{
    @Autowired
    private ScreenshotRepository screenshotRepository;


    public Boolean customMethod(){
        screenshotRepository.sampleQuery()
        //blah blah...
    }
.
.
.
 类似资料:
  • 我想在我的存储库中的save/saveAll方法中添加一个装饰器。 我试图通过阅读此线程使用自定义实现来覆盖方法,但我不想重写方法实现,只需调用具有更多行为的默认方法。提供的解决方案都不适合我的情况,或者需要太多的自定义。 我可以从方法体中手动调用缓存逐出,但我不能只覆盖方法并调用super。save(),因为我只使用接口,让Spring生成实现。 有什么建议吗?

  • 我需要使用spring@Cacheable注释缓存对MongoDB的调用: 不幸的是,使用@Cacheable注释接口中的任何方法都会导致以下异常: 我正在寻找一种方法来缓存对DB的调用(这相当昂贵)。有什么想法吗?

  • 我面临SpringJDBC的枚举问题。我有一个包含枚举值的POJO。我想在数据库中存储字符串值,而不是序号。我制作了一个DAO,除了使用命名参数jdbcTemplate的批处理方法(对于jdbcTemplate和BatchPreparedStatementSetter,它可以工作,但我更喜欢使用命名参数)之外,它工作得很好。 例如: 不适用于枚举属性。 我有一个错误: 原因:org。h2。jdbc

  • 我已经开始探索Spring Batch,并遇到了一些基本问题。

  • 我正在创建一个由groovy bean builder支持的spring批处理(spring boot)。但是,我无法找到以下xml结构的正确语法: 更新:豆子。棒极了 我想使用选项1技术,如果我这样做,我会得到“beanName must not empty”错误。我没有使用选项2中的bean,而是它们似乎在工作。 我假设使用选项1,将使用其他定义的bean自动配置jobRepository等。

  • 使用分页已经有问题了。接受的解决方案适用于采用格式的查询。项目文档还引用了以下用法: https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo.reactive.repositories.usage 例158。用于持久化个人实体的基本存储库接口 问题是这对findAll不起作用: 例外情况: Spri