Spring Boot JPA 获取父子节点

问题描述

我有 2 张桌子:

@Entity
@Table
public class ProductEntity extends AbstractEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long productId;

    @OnetoMany(mappedBy = "product",cascade = CascadeType.ALL,orphanRemoval = true,fetch = FetchType.LAZY)
    private Set<ProductItemEntity> productItems;
}


@Entity
@Table
public class ProductItemEntity extends AbstractEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long itemId;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "PRODUCT_ID",nullable = false)
    private ProductEntity product;

    @Column(name="PRODUCT_RATE") // Unique
    private Integer productRate;
}

我正在尝试运行一个测试,我通过 productId 和 productRate 进行查询,如下所示:

@Query("SELECT p FROM ProductEntity p JOIN FETCH p.productItems pi WHERE p.productId = :productId AND pi.productRate = :rate ")
ProductEntity findByProductAndrate(@Param("productId") Long productId,@Param("rate") Integer rate);

我先保存产品和产品项目。然后执行上述方法获取带有产品项目的产品。但我得到空结果。

不知道我是否遗漏了什么。任何帮助将不胜感激。

  • Spring Boot
  • H2 (@DataJpaTest)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)