当前位置: 首页 > 知识库问答 >
问题:

Spring Data Rest-配置findBy路径

公羊嘉
2023-03-14

使用以下存储库:

@RepositoryRestResource(collectionResourceRel = "people", path = "people")
public interface PeopleRepository extends PagingAndSortingRepository<People, String> {

    @RestResource
    List<People> findByName(@Param("name") String name);

}

findByName的URL自动设置为/people/search/findbynname。但是它看起来很冗长,URL可以配置为<code>/people</code>并且查询类似<code</peoples吗?name=john?

共有2个答案

郎子平
2023-03-14

您可以更改路径的最后一部分(请参阅文档):

@RestResource(path = "byName", rel = "byName")
List<People> findByName(@Param("name") String name);
/people/search/byName?name=john

有关QueryDsl的全面实现,请参阅@AlanHay答案(更多信息在这里)

卫景明
2023-03-14

如果使用 QueryDSL 扩展,则可以使用该格式进行查询,并具有能够按任意属性组合进行筛选而无需编写任何查询方法的额外好处:

配置(假设 Maven)

<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-apt</artifactId> 
    <version>4.1.4</version>
    </dependency>
<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-jpa</artifactId> 
    <version>4.1.4</version> 
</dependency>

然后只需更新您的存储库定义:

@RepositoryRestResource(collectionResourceRel = "people", path = "people")
public interface PeopleRepository extends PagingAndSortingRepository<People, String>, 
                                               QuerydslPredicateExecutor<People> {


}

您现在应该可以像这样过滤:

/people?name=john
/people?name=John&address.town=London 

等等

 类似资料:
  • 每个路由可以有不同的属性; 一些常见的属性是: path - 应用程序在特定路由上时在浏览器中显示的URL component - 当应用程序在特定路由上时要呈现的组件 pathMatch - 默认为’prefix’的可选属性。 确定是匹配完整的网址还是仅匹配开头。 当定义一个具有空路径字符串的路径设置pathMatch为’full’时,否则它将匹配所有路径。 children - 表示此路由的子

  • 路由配置 路由的作用 路由配置是 CAT 集群流量负载均衡最重要的一环。路由配置提供了默认机器列表、多机房划分、地域划分等基本功能,路由选择的优先级为:同机房 > 同地域 > 默认机器 > 备用机器。 对于流量较高的机器,用户可以扩展相应的策略,通过路由配置将部分流量指定到低负载的机器。 配置入口 http:///localhost:8080/s/config?op=routerConfigUpd

  • V2Ray 内建了一个简单的路由功能,可以将入站数据按需求由不同的出站连接发出,以达到按需代理的目的。这一功能的常见用法是分流国内外流量,V2Ray 可以通过内部机制判断不同地区的流量,然后将它们发送到不同的出站代理。 RoutingObject RoutingObject 对应主配置文件中的routing项。 { "domainStrategy": "AsIs", "rules": []

  • 目前的配置文件和文件结构 在demo目录下有一个index.html和home.html 需要配置 访问 localhost:90/demo, 加载demo下的index.html 访问 localhost:90/demo/home, 加载demo下的home.html 应该怎么写? 我试了下在和 server 同级加了一个 server 但是没有效果, 访问是404, 不是很理解 这种写法有什么

  • 路由配置项位于 /lavas.config.js 的 router 对象。Lavas 内部使用 vue-router 进行路由管理,因此许多配置项都和 vue-router 是相同的。 Lavas 路由配置项包括: 路由模式,基准路由等 路由切换动画效果 重写路由(如果对自动生成的路由规则不满意) 路由模式和基准路由 router: { mode: 'history', base:

  • 配置 func InitRouter(r *gin.Engine) { r.GET("/sn", SignDemo) // v1 版本 GroupV1 := r.Group("/v1") { GroupV1.Any("/product/add", v1.AddProduct) GroupV1.Any("/member/add",