JPA OneToOne 关系返回 null

JPA OneToOne relationships returning null

我有这个class

public class Hotel implements Serializable {


    @OneToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "FILE_ID")
    private File file;

..
}

和这个查询

Query query = em.createQuery("SELECT file.hotel FROM File file   where file.id = :id ");

我想知道如果关系中不存在酒店但文件存在,是否可以 return 一个空的酒店对象而不是 null

由于您使用的是 JPA,因此可以使用存储库。 JPA可以自动return一个类型Optional<>。通过 Optional.isPresent() 您可以检查查询是否 return 编辑了一些内容。

存储库可能如下所示:

public interface FileRepository extends JpaRepository<File, Long> {
    Optional<File> findById(Long id);

}