如何在休眠的 Crud 存储库中创建 where 查询函数?



我目前正在学习春季启动和休眠

我创建了员工实体和员工存储库

@Entity
@Table(name = "staffs")
public class Staff {
private String name;
private String gender;
private String email;
private Integer mobile;
private String joined;
@Id
private String staffID;
private String password;
private Integer isAdminStaff;
private Integer instID;
getters and setter....
}

public interface StaffRepository extends CrudRepository <Staff,String> {
}

现在我需要在 StaffRepository 中创建一个用于用户登录的方法

查询是

SELECT * FROM staffs WHERE email = 'john@example.com' AND password = 'aabc123xy' AND instID = 13

我需要在员工存储库中创建这样的方法

@AutoWired
StaffRepository staffRepo
Staff staff= staffRepo.login("john@example.com","aabc123xy",13);// execute above where query
if (staff != null) youLoggedIn();
else wrongCredits();

如何实现?

还帮助此查询::

SELECT enrolled_courses.enrollID,student.name,student.studentid from enrolled_courses INNER JOIN student where enrolled_courses.studentid = student.studentid AND student.instID = 13 AND enrolled_courses.courseid = '13I01C'

您可以通过这种方式使用 JPA 方法命名查询

Staff findByEmailAndPasswordAndInstId(String email, String password, Integer id);

在您的StaffRepository中使用此功能,并使用您的数据调用此值

Staff staff= staffRepo.findByEmailAndPasswordAndInstId("john@example.com","aabc123xy",13);

注意:假设根据此标准,他们将是唯一的员工