我是Spring Data JPA的新手。我试图为存储库创建一个自定义方法,但它确实抛出异常。这是我目前的实施:
public interface EmployeeRepository extends
CrudRepository<Employee, Long>,EmployeeRepositoryCustom {
}
@Repository
public interface EmployeeRepositoryCustom {
public void updateEmployee(String field, String value,long id);
}
public class EmployeeRepositoryImpl implements EmployeeRepositoryCustom {
@PersistenceContext
private EntityManager entityManager;
@Override
public void updateEmployee(String field, String value, long id) {
// Implementation goes here
}
}
这是我启动应用程序时发生的异常(我正在使用Spring启动)。
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property updateEmployee found for type Employee!
at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:75)
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:327)
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:307)
答案 0 :(得分:0)
由于您已标记spring-boot
,我假设您使用的是spring-boot。如果是这样,您可以尝试以下方法。
@Repository
public interface EmployeeRepositoryCustom {
@Modifying
@Query(value = "update Employee query", nativeQuery = true)
public void updateEmployee(String field, String value,long id);
}
您不需要具有实现,并且您可以在上面的查询中使用命名参数。 Spring-boot
将处理休息。