如何解决Spring Data Rest HAL对我的数据模型不起作用我该如何解决?
我的主要实体有> 10个查找值。
这些查找值有时具有与之关联的业务规则,其中一些是必填字段。
Fire:
name: String
fuelType: FuelTypeLookup (@ManyToOne)
status: FireStatusLookup (@ManyToOne)
type: FireTypeLookup (@ManyToOne)
size: Double
... etc ...
我们在验证程序中检查的一些业务规则:
- 状态!=空 类型为YYY时,
- 状态不能为XXX 尺寸> 1000时
- 类型不能为ZZZ
- 如果size> 0状态不能为XXX
对于可配置性,类型查找具有有效状态的集合,从而允许客户端应用程序创建动态相关的下拉列表
我们的控件中有2个客户端在内部使用此API,同时还有一个项目在系统之间以及两个第三方客户端之间同步数据。
我正在寻找一个易于理解的(自我描述的API)。
Spring Data Rest HAL中的难点:
- 客户端应用程序使用自我链接作为其关键字定期更新其缓存的查找。查找的链接不是查找的规范链接,而是火的链接,这一事实使客户端无法在不遵循另一个链接(每次查找)的情况下合并值,从而使缓存的使用率降低。参见:canonical-links-with-spring-hateoas和how-do-i-avoid-n1-queries-with-spring-data-rest
- 客户端应用程序需要更多地了解模型的复杂性以及Spring的HATEOAS实现如何工作;击败HATEOAS承诺的自我描述的灵丹妙药
- 输入您获取的内容失败(有时无提示)
- 对@ManyToOne @RestResource(exported = false)字段进行配接会重新保存附加的查找,即使仅指定了查找ID也是如此。您应该如何将值更改为其他查找?
- 投影可以部分解决这些问题,但会破坏PUT带来的后果,甚至更糟
- 投影与在ResourceProcessor中手动添加规范链接结合使用时,只会显示非规范链接,而在没有投影的情况下都显示非规范链接
我不是唯一一个对Spring Data Rest和动态查找有疑问的人。我在做什么错了?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。