以多对一关系获取具有空值的数据

时间:2018-11-15 11:41:33

标签: hibernate spring-boot jpa spring-data-jpa

我正在尝试获取一个实体数据,该数据与不同实体具有多个多对一关系。一种关系也可以为空。问题是,如果该关系为null,则无法获取数据。

父班(课程)

 @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="Course_ID")
    private Integer id;

    private Integer createdByID;
@ManyToOne
    @JoinColumn(name = "teacher_ID",referencedColumnName="teacher_id")
    private TeacherInformation teacher;

    @ManyToOne
    @JoinColumn(name="CC_ID",referencedColumnName="cc_id")
    private CCInformation cc;

儿童(CC)

@Id
    @Column(name="cc_id")
    private Integer id;
    private String name;  
@OneToMany(targetEntity=CourseInformation.class,mappedBy="teacher",fetch=FetchType.LAZY,cascade=CascadeType.ALL)
    private List<CourseInformation> course;

在“课程”表中,CC条目可以为null,如果为null,则我将使用crudrepository来获取其详细信息,但现在不会,因为JPA在表之间使用内部联接,因此无法获取。我可以假设的可能解决方案是使用左连接代替内部连接。但是我不知道如何在Spring Boot JPA中实现这一目标。

1 个答案:

答案 0 :(得分:0)

您可以按以下方式编写查询:

select course from Course course left join course.cc cc