java Spring Data JPA中的findBy外键

nnvyjq4y  于 2023-01-15  发布在  Java
关注(0)|答案(1)|浏览(162)

我有一个实体EncodingResult,它引用了另外三个实体,我想知道如何使用存储库的findBy()方法来返回一个基于foreignKey的实体,这样我就可以,例如,发出一个GET请求,传递一个Video的外键作为参数,并返回是否存在一个EncodingResult,其中包含一个具有给定foreignKey的Video。
你将如何着手做这件事呢?我试着阅读了一些关于EntityGraphs的文章,但相当困惑。而且似乎也没有太多的内容来解释框架的这些部分。

goqiplq2

goqiplq21#

如果您发布实体的代码会更好,但从您的描述来看,我认为您有类似以下的内容:

@Entity
public class EncodingResult {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Integer id;

  @OneToMany(mappedBy = "encodingResult")
  private List<Video> videos=new ArrayList<Video>();

  //...boilerplate
}
@Entity
public class Video {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Integer id;

  private String name;

  @ManyToOne
  EncodingResult encodingResult;

  //...boilerplate
}

所以你可以像这样在EncodingResultRepository中定义findBy方法。

public interface EncodingResultRepository extends JpaRespository<EncodingResult, Integer> {

  public Optional<EncodingResult> findByVideoName(String name);

  public Optional<EncodingResult> findByVideoId(Integer id);
}

相关问题