我有两个具有 OneToOne 关系的实体。我想通过辅助实体上的值查询主实体:
@Entity
public class Main {
@Id
@GeneratedValue(strategy= GenerationType.UUID)
private String oid;
@OneToOne(mappedBy = "main")
private Secondary secondary;
}
@Entity
public class Secondary {
@Id
@GeneratedValue(strategy= GenerationType.UUID)
private String oid;
private String value;
@OneToOne
@JoinColumn(referencedColumnName = "oid")
private Main main;
}
在 Spring Data 中,这通过存储库方法很简单:
findBySecondary_Value(String value)
我是否需要使用本机查询或 JPQL,还是有办法使用
find
中的静态 PanacheEntityBase
方法?
我不太清楚你的意思
findBySecondary_Value(..)
,我对Spring(数据)不太熟悉,但是你可以从辅助实体查询主要实体,如下所示:
public static Secondary findByMainValue(String value) {
return find("main.field = ?1", value).firstResult(); //or return optional
}