【发布时间】:2015-04-29 22:11:22
【问题描述】:
我有一个代表数据库中(用户)组的组实体。 GroupRepository 类有一些方法可以让我查询 Group 表,例如:
List<Group> findByGroupName(String name);
当我 curl 该 URL 是该方法的直接父级时,此方法有一个暴露的 URL,即:
curl http://localhost:8080/groups/search/
{
"_links" : {
"searchNames" : {
"href" : "http://localhost:8080/groups/search/seachNames{?terms}",
"templated" : true
},
"findByName" : {
"href" : "http://localhost:8080/groups/search/findByName{?name}",
"templated" : true
}
}
我还在构建一个控制器来添加额外的 REST 端点,我希望它们像上面一样公开为“_links”。如何让我的方法看起来像这样?
更新
这是我的一些存储库代码。
@Transactional(readOnly=true)
public interface GroupRepository extends PagingAndSortingRepository<Group, Long> {
Group findByName(@Param("name") String name);
@Query(value="SELECT * FROM `Group` WHERE name LIKE CONCAT('%',:terms,'%') ORDER BY CASE WHEN name = :terms THEN 0 WHEN name LIKE CONCAT(:terms,'%') THEN 1 WHEN name LIKE CONCAT('%',:terms,'%') THEN 2 WHEN name LIKE CONCAT('%',:terms) THEN 3 END",
nativeQuery=true)
List<Group> searchNames(@Param("terms") String terms);
}
【问题讨论】:
标签: spring-boot spring-data spring-hateoas