【问题标题】:JPQL/HQL delete query with spring data jpaJPQL/HQL 使用 spring 数据 jpa 删除查询
【发布时间】:2020-07-18 09:16:13
【问题描述】:

我对 JPQL/HQL 不是很熟悉,所以这个问题可能有点愚蠢,我正在尝试使用字符串 jpa 编写删除查询。

我有 GeneratedStatement 对象,它有 GeneratedStatementId 对象,它由 createdDate 组成。

我的查询应该是这样的:

@Query(value = "DELETE FROM EODGeneratedStatement s WHERE s.createdDate < :expiryDate")
int deleteByIdCreatedDateBefore(LocalDate expiryDate);

但我认为它缺少 GeneratedStatementId 对象,我不确定如何添加它。它应该像 s.getGeneratedStatementId().createdDate 我相信的东西

【问题讨论】:

    标签: java postgresql spring-data-jpa hql jpql


    【解决方案1】:

    我假设您有一个名为GeneratedStatement@Entity,其中包含GeneratedStatementId POJO 对象,其中包含变量createdDate

    如果您正在寻找GeneratedStatementGeneratedStatementId 之间的@OneToOne 映射,那么下面的查询应该可以工作。

    @Query(value = "DELETE FROM GeneratedStatement s left join 
                            s.GeneratedStatementId sid WHERE sid.createdDate < :expiryDate")
    int deleteByIdCreatedDateBefore(LocalDate expiryDate);
    

    @OneToOne映射和FetchTypeLazy

    @Query(value = "DELETE FROM GeneratedStatement s left join fetch 
                            s.GeneratedStatementId sid WHERE sid.createdDate < :expiryDate")
    

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 2014-09-28
      • 2016-05-27
      • 2019-05-03
      • 2017-11-28
      • 2020-01-01
      • 2017-04-21
      • 2019-10-27
      • 1970-01-01
      相关资源
      最近更新 更多