我有使用@RepositoryRestMvcConfiguration向REST公开的Spring Data存储库。 问题是默认情况下似乎没有公开自定义方法,也没有看到配置它的注释。 我的代码:
@RepositoryRestResource(path = "users", collectionResourceRel = "users")
public interface UserRepository extends JpaRepository<User, Integer> {
@Modifying
@Query("update User u set u.password = ?3 where u.login = ?1 and u.password = ?2")
int changePassword(String login, String oldPassword, String newPassword);
User findUserByEmail(String email);
User findUserByLogin(String login);
}
我需要用于changePassword的REST URL,最好是在控制器中以某种方式配置它:
@Modifying
@Query("update User u set u.password = ?3 where u.login = ?1 and u.password = ?2")
@RepositoryRestRequestMapping(value={"/changepwd"}, method = RequestMethod.POST)
int changePassword(String login, String oldPassword, String newPassword);
嗯,可以理解的是,存储库类不了解REST,可能这不适合与Web相关的注释。但是必须存在一些配置它的方法。为这样的需求添加控制器实在太糟糕了 - 实际上针对同一实体类的几个操作并不完全适合CRUD概念。
我是Spring Data的新手,可能会错过一些东西。如果已经支持,我们将非常感激 - 请尽情享受。