【发布时间】:2021-06-24 16:13:46
【问题描述】:
我正在尝试通过查询通过子实体获取主要父实体。我的实体如下所示。
主要父实体
@Entity
@Data
@EqualsAndHashCode(callSuper = true)
Public class Buyer{
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
List<Account> accounts;
}
帐户类
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type")
public abstract class Account{
}
Account 类在下面的类中继承
@Entity
@Data
@EqualsAndHashCode(callSuper = true)
@DiscriminatorValue("buyer1")
public class BuyerAccount1 extends Account {
@Column(unique = true)
private UUID buyerId;
}
我想通过resourceId 现有BuyerAccount1 获得Optional。我已经尝试了下面的 JPA 查询来做到这一点,但我得到了 Optional.empty() 作为响应。
@Query("SELECT pb \n" +
" FROM Buyer pb join pb.accounts a \n" +
" WHERE a.buyerId= :buyerId \n" +
" AND type(a) = BuyerAccount1")
Optional<Buyer> findByBuyerAccount1(@Param("buyerId") UUID buyerId);
我是否在查询中遗漏了什么?
提前致谢!!
【问题讨论】:
标签: java spring-boot hibernate jpa hibernate-query