是否可以自定义为 Spring Data REST 生成的 findAll 和 findById 生成的默认查询?例如,选择列的子集,因为我发现设置 @JsonIgnore 不会更改生成的查询中的 SELECT 列本身。
搜索查询可以通过 @Query 自定义,但不确定如何处理其他链接,例如针对所有用户或用户/{id}
最佳答案
正如您所说,搜索查询可以通过@Query自定义,因此您只需在接口(interface)声明中使用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);
}
如果您想选择列的子集,我建议使用公共(public)列创建新实体,该实体将映射到与内部演示文稿相同的表。
class UserPublic
... public fields;
并基于新的实体存储库开放API
public interface UserPublicRepository extends JpaRepository<UserPublic, Long> {}
关于java - 自定义 Spring Data REST 生成的默认查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26696395/