在使用Spring data jpa进行没有实体关联的相关查询时无法使用 get("fieldName)或者join的方法进行操作时,可采用子查询来对另一个实体进行查询,并将查询结果作为原来查询(父查询)的查询条件值。
使用到的类
javax.persistence.criteria.Subquery<T> // 子查询类
javax.persistence.criteria Root<X>
javax.persistence.criteria.Join<Z, X> // 在子查询中有使用到连接查询 z:当前查询类,x:连接类
前期准备工作
创建实体类Student和Teacher(使用到了lombok包的@Data注解),如下:
import lombok.Data;
import javax.persistence.*;
import java.util.List;
/**
* 学生类
*/
@Entity
@Table(name = "student")
@Data
public class Student {
@Id
@SequenceGenerator(name = "increment")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "increment")
private Integer id;
@Column