gpt4 book ai didi

java - 通过多个实体在Spring Data Repository中自定义@Query

转载 作者:行者123 更新时间:2023-12-01 07:52:03 27 4
gpt4 key购买 nike

我有 4 个 JPA 实体,如下所示:

实体农场:

@Entity
public class Farm implements Serializable {

@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idFarm;
private String nameFarm;
}

实体SAU:

@Entity
public class SAU implements Serializable {

@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idSau;
private String nameSau;
@OneToOne
@JoinColumn(name="farm_id")
private Farm farm;
}

实体部分:

@Entity
public class Part implements Serializable {

@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idPart;
private String namePart;
@ManyToOne
@JoinColumn(name = "sau_id")
private Sau sau;
}

实体邪教:

@Entity
public class Cult implements Serializable {

@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idCult;
private String nameCult;
@OneToOne
@JoinColumn(name = "part_id")
private Part part;
}

我需要检索Cult对象的Collection,其中farm_id = x,我显然无法使用约定命名来做到这一点类似的方法:

public Collection<Cult> = findCultByPartBySauByFarmIdFarm(Long idFarm);

我不知道如何在 Spring Data Repository 中为这种情况编写自定义 @Query

最佳答案

没有显式连接的另一个版本。

@Query("select c from Cult c where c.part.sau.farm.idFarm = ?1")
public Collection<Cult> findCultByFarmId(Long idFarm);

我通常更喜欢使用它,因为我让下划线实现为我处理连接。

关于java - 通过多个实体在Spring Data Repository中自定义@Query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35756576/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com