这是我想要实现的
LEFT OUTER JOIN i18n_resort i18n2_ ON
resort1_.resort_id = i18n2_.resort_id AND i18n2_.LANGUAGE_ID = 2
是否可以将一列和另一列的值作为 JPA 中的条件语句。
下面是Resort的实体类。
@Entity
@Table(name = "resort")
public class Resort implements Serializable {
@Id
@Column(name = "resort_id")
private Long resortId;
@BatchSize(size = 50)
@OneToMany(mappedBy = "resortId", fetch = FetchType.LAZY)
@I18nCollection
@JsonIgnore
private List<I18nResort> i18n;
public Long getResortId() {
return resortId;
}
public void setResortId(Long resortId) {
this.resortId = resortId;
}
public List<I18nResort> getI18n() {
return i18n;
}
public void setI18n(List<I18nResort> i18n) {
this.i18n = i18n;
}
}
加入的另一个类:
@Entity
@Table(name = "i18n_resort")
public class I18nResort extends I18nEntity {
@Id
@Column(columnDefinition = "i18n_resort_id", name = "i18n_resort_id")
private Long i18nResortId;
@Column(name = "resort_id")
private Long resortId;
@Column(name = "name")
private String name;
private Long languageId;
public Long getI18nResortId() {
return i18nResortId;
}
public void setI18nResortId(Long i18nResortId) {
this.i18nResortId = i18nResortId;
}
public Long getResortId() {
return resortId;
}
public void setResortId(Long resortId) {
this.resortId = resortId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
当时我参加 i18n 度假村课程时,我也想在 language_id 上放置条件语句以避免重复。
答案 0 :(得分:0)
您可以尝试如下,无需编写查询,使用下面的 JPA 存储库方法。
并且您还在子表上添加@ManyToOne。
firebase_messaging: ^10.0.3
firebase_analytics: ^8.1.2
firebase_remote_config: ^0.10.0+2
firebase_core: ^1.3.0
答案 1 :(得分:0)
在您需要在存储库类中定义的这种情况下,最好使用 JPQL/本机查询。这是编写这些查询的非常好的资源link