问题描述
我有以下两个JPA实体
public class User {
@Id
@Column(name = "user_id")
private String id;
private String userName;
private String courseStatus;
}
public class Course {
@Id
@Column(name = "course_id")
private String id;
@ManyToOne
@JoinColumn(foreignKey = @ForeignKey(name = "user_id"))
private User user;
private String userStatus
}
我有一个用户名列表(无ID)。我需要根据传递的IN子句将用户表与课程表连接起来,并检查userStatus和CourseStatus是否均为“ VALID”。是否可以在spring数据JPA中的单个查询中做到这一点
解决方法
类似这样的东西
在您的CourseRepository
@Query("select c.user from Course c where c.user.userName in(:userNames) and c.user.courseStatus ='VALID' and c.userStatus='VALID'")
List<User> findAllValidUsers(@Param("userNames") List<String> userNames)