自定义Spring Data REST生成的默认查询

时间:2014-11-02 05:35:04

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

是否可以自定义为Spring Data REST生成的findAll和findById生成的默认查询?例如,选择列的子集,因为我发现设置@JsonIgnore不会在生成的查询中更改SELECT列本身。

搜索查询可以通过@Query进行自定义,但不确定如何处理其他链接,例如所有用户或用户/ {id}

1 个答案:

答案 0 :(得分:2)

如您所说,搜索查询可以通过@Query自定义,因此您可以在界面声明中使用Query注释覆盖默认方法

    public interface UserRepository extends JpaRepository<User, Long> {

       @Query("select u from User u where u.firstname like %?1")
       List<User> findAll();

       @Query("select u from User u where u.id == %?1")
       User findById(String id);
    }

如果你想选择列的子集,我建议用公共列创建新的实体,它将被映射到与内部表示相同的表。

   class UserPublic
   ... public fields;

并基于新的实体存储库打开API

    public interface UserPublicRepository extends JpaRepository<UserPublic, Long> {}