java如何限制json与jpa对象之间的映射工作
在许多教程中,我看到表示rest json
接口的类也用于jpa
,在我看来这不是一个好的实践(如果我们想要更改json
,而不是jpa
,怎么办?我们必须添加忽略注释等)。在制作中,我应该有两套完整的课程吗?在这种情况下,我们有很多“管道规范”,你是如何解决这个问题的
你可以在下面搜索框中键入要查询的问题!
在许多教程中,我看到表示rest json
接口的类也用于jpa
,在我看来这不是一个好的实践(如果我们想要更改json
,而不是jpa
,怎么办?我们必须添加忽略注释等)。在制作中,我应该有两套完整的课程吗?在这种情况下,我们有很多“管道规范”,你是如何解决这个问题的
# 1 楼答案
我同意你的观点:你应该有持久性模型(JPA)和服务模型(JSON)
逻辑层之间的抽象和职责分离是有代价的
如果您想在JSON中使用更轻的对象以实现性能、安全性或更好的代码可维护性,那么就需要管道代码
编写干净高效的代码是有代价的
在JSON之前,我们也有同样的问题
因此,根据经验,为了避免管道代码,我们应该尽可能多地保持类的相同性,并且只在表示同一事物但位于两个不同层的两个对象之间存在差异时才引入。当然,为了有效地使用第三方lib提供的反射映射
如果您使用jackson和jackson-databind,您已经准备好使用类来进行一些自定义映射,但是当然,如果您对一个类的映射非常具体,那么您应该为该类创建映射
在您的例子中,jpa中的对象集合与json中的Id集合, 为了避免编写大量锅炉板和管道代码,如果这种需求对您来说非常常见,您可以开发一个实用程序类来处理任何实体的这种需求