我们正在使用一个非常简单的设置@RepositoryRestResource
在一个上面PagingAndSortingRepository
连接到 postgres 数据库。我们还配置了spring.jackson.property-naming-strategy=SNAKE_CASE
返回漂亮的 json。一切都很好,直到我们开始分类。正如我们所发现的 - 排序要求我们提供实际的类字段名称(当然我们有驼峰式大小写):
get("/thing?sort=dateCreated,desc")
当我们尝试对 JavaScript 友好时
get("/thing?sort=date_created,desc")
它惨败,因为 jpa 尝试用下划线分割参数。
有没有一种简单的方法可以使路径参数的格式与我们返回的 json 中的格式相同?
这有一个错误 -数据休息-883 https://jira.spring.io/browse/DATAREST-883。它已修复并发布。但随后,由于回归(数据休息-909 https://jira.spring.io/browse/DATAREST-909)这已在下一个版本中被删除。我在 Github 上问过他们 https://github.com/spring-projects/spring-data-rest/pull/222#issuecomment-263511154如果他们打算再次这样做,因为这在过去也曾困扰过我。我们将看看他们对此有何评论。
现在您可以:
- 就这样吧
- 使用驼峰式命名法的属性名称
- 解决这个问题(例如,与艾伦·海耶的回答 https://stackoverflow.com/a/40852014/4494577) - 恕我直言,这似乎很脆弱,但可能会在短期内起作用。
我测试过的 spring-boot 版本中该功能的状态:
-
1.4.0 https://www.versioneye.com/java/org.springframework.boot:spring-boot-starter-data-rest/1.4.0.RELEASE(spring-data-rest 2.5.2):尚未实现
-
1.4.1 https://www.versioneye.com/java/org.springframework.boot:spring-boot-starter-data-rest/1.4.1.RELEASE(spring-data-rest 2.5.3): 有效 ->code https://github.com/jannis-baratheon/stackoverflow--spring-data-rest-sorting-by-json-field-name
-
1.4.2 https://www.versioneye.com/java/org.springframework.boot:spring-boot-starter-data-rest/1.4.2.RELEASE(spring-data-rest 2.5.5):已删除
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)