Spring 数据存储库junit 测试

Spring data repository junit Test

我正在尝试测试我的应用程序,问题是我有一个存储库接口,其中包含一些像这样的方法:

 public interface EmployeeDetailRepository extends   JpaRepository<EmployeeDetail, Integer> {

    public List<EmployeeDetail> employeeTasks(@Param("emp_id")  List<Integer> emp_id, @Param("flag") boolean Active);
   }

此方法的查询在另一个 xml 文件中定义为命名本机查询。 当我开始任何测试时,我无法加载 ApplicationContext 并出现此错误:

 Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'employeeDetailRepository': Invocation of init method failed; nested exception is  org.springframework.data.mapping.PropertyReferenceException
  : No property employeeTasks found for type EmployeeDetail!

此错误仅在我启动测试用例时显示,当我启动应用程序时,没有任何反应。 任何帮助将不胜感激

显然您的配置出了问题,因为 spring 正在尝试解释方法名称。 也许您可以使用@NamedQuery 注释您的EmployeeDetail。这对我来说效果很好。 描述得很好 here.

我认为您正在尝试获取表格中的在职员工列表,这里是您的查询。

但下面的解释只针对一个员工ID。但是,如果你想在给出员工 ID 列表后找出员工列表,我认为你必须自己实现该方法。

public interface EmployeeDetailRepository extends   JpaRepository<EmployeeDetail, Integer> {

@Query("select e from EmployeeDetail e where emp_id=?1 and active=?2")
    public List<EmployeeDetail> employeeTasks(Integer emp_id, boolean active);
   }

但是,如果您想要在问题中提出的确切操作,则必须执行相同的操作。您可能会发现如何在 this page

上进行自定义实施

谢谢, 阿比吉特。