如何制作没有类型的 JpaRepository,或者只制作查询的 jpa repo?

Posted

技术标签:

【中文标题】如何制作没有类型的 JpaRepository,或者只制作查询的 jpa repo?【英文标题】:How to make JpaRepository without types, or to make jpa repo with only queries? 【发布时间】:2020-10-19 12:26:19 【问题描述】:

我有几个存储库来处理实体(添加、更新、删除等)。而且我想使用 JpaRepository 仅通过 @Queries 方法获取统计数据,没有更新、删除和其他 CRUD 方法。春季 JPA 是否有针对这种情况的解决方案?如果我使用 JpaRepository 我绑定到他的 PaymentList 类型并获取 CRUD 方法,但是要添加或删除实体,我有不同的 repo,如果我使用没有类型的 JpaRepository,我会得到异常。一种解决方案是使用 JpaRepository 中的方法并在使用它们时抛出异常,但它看起来有点难看。 这是我的存储库的示例:


@Repository
public interface StatisticRepo extends JpaRepository<PaymentList,Long> 

    @Query("SELECT pd.date, SUM(pd.totalPayment) " +
            "FROM PaymentDetails pd WHERE pd.date BETWEEN :date_from AND :date_until " +
            "GROUP BY pd.date")
    List getDailyExpensesStatistic(@Param("date_from") Date dateFrom,
                                   @Param("date_until") Date dateUntil);
`

【问题讨论】:

【参考方案1】:

我找到的最佳解决方案是使用 org.springframework.data.repository.Repository。无论使用什么类型的实体或 ID。它没有任何方法来存储或获取数据。也许有人有更好的解决方案...

【讨论】:

以上是关于如何制作没有类型的 JpaRepository,或者只制作查询的 jpa repo?的主要内容,如果未能解决你的问题,请参考以下文章

jparepository 无法解析为类型

在 spring jparepository 中加入多个表

按两个实体搜索不适用于 JpaRepository

覆盖 JpaRepository 方法或调用它的非覆盖方法

%Like% 在 Spring JpaRepository 中查询 List<String> 类型的属性

JpaRepository,如何查询 OneToMany 单向字段?