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
上进行自定义实施
谢谢,
阿比吉特。
我正在尝试测试我的应用程序,问题是我有一个存储库接口,其中包含一些像这样的方法:
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
上进行自定义实施谢谢, 阿比吉特。