在JPA存储库中执行自定义方法时发生异常

时间:2019-11-27 05:25:05

标签: java spring-boot spring-data-jpa spring-data-rest

public class UserRepositoryImpl implements UserRepositoryCustom<User, Long> {

    @Override
    public void customMethod(User user) {

    }
}

public interface UserRepositoryCustom<T, ID extends Serializable> {

    void customMethod(User user);
}

@RepositoryRestResource
public interface UserRepository extends JpaRepository<User, Long>,
            UserRepositoryCustom<User, Long> {
}

为什么会出现此异常

Caused by: org.springframework.data.mapping.PropertyReferenceException: No property customMethod found for type User!

1 个答案:

答案 0 :(得分:-1)

Spring实现了启动时在UserRepository接口中编写的方法。在扩展JpaRepository的存储库中,不允许编写任何与Spring数据JPA不兼容的自定义方法。因此,当spring获取UserRepository的方法列表时,它还会获取您的自定义方法,这与Spring JPA Repository的语法不同。因此会引发异常。