我试图在我的java REST-API中映射openAPI模型(使用Swagger代码生成)和JPA实体(从HiberNate中的数据库模式生成),以便我可以使用JPA(Hibernate)实体将接收到的模型保存到数据库中,并使用模型创建从数据库中获取数据的响应。
我知道我可以分别创建使用模型和实体,并创建一种从一个转换到另一个的机制。然而,如果模型中的数据库或字段有任何变化,我需要更新模型和实体,这很麻烦。
是否有任何方法可以定义模型/实体,使其可以在Swagger和hibernate JPA中使用?并且不需要创建两者(这是冗余的)
经过一些研究,我发现了DTO(数据传输对象)的概念,它可以根据您对API调用的响应映射到您的模型。
您可以使用ModelMapper或创建自定义映射器来执行从Model到DTO的转换。
您可以在 Spring boot(Gradle) 中使用以下软件包用于 ModelMapper:
implementation 'org.modelmapper:modelmapper:2.3.0'
问题内容: 当我使用@Entity注释类并尝试解析依赖项时,我可以在两个不同的包javax.persistence.Entity和org.hibernate.annotations.Entity中选择包。 javax包是JPA的实体注释,但是为什么会有hibernate的实体注释,它与JPA的注释有区别?仅仅是允许定义更多属性的扩展吗? 问题答案: 具有一些尚未标准化的额外属性。仅当直接使用hib
问题内容: 当我使用@Entity注释类并尝试解决依赖关系时,我可以在两个不同的包javax.persistence.Entity和org.hibernate.annotations.Entity中选择包。 javax包是JPA的实体注释,但是为什么会有休眠的实体注释,它与JPA的注释有区别?仅仅是允许定义更多属性的扩展吗? 问题答案: 具有一些尚未标准化的额外属性。仅当直接使用hibernate
我在Spring Boot JPA应用程序中有以下设置: 可嵌入 原因:org.hibernate.AnnotationException:mappedBy引用了未知的目标实体属性:com.foobar.entity.logSearchHistoryAttr.logSearchHistoryAttrs中的com.foobar.entity.logSearchHistoryAttr.logSearc
快速总结我想要实现的目标。请给出实施或设计建议:) 我有两个表:用户,图像。在UserDO中,我希望保留一组所有用户的图像,以及单个图像,即用户的肖像(在我的示例中,该组将包括肖像): 在ImageDO中,我有一个userid作为外键来记录哪个用户上传了图像。但是它没有布尔值,因为认为一个用户可能会上传许多图像,但只有一个是肖像。 有什么方法可以实现这一点吗?或者我需要维护另一个表(例如,Port
我正在为我们班做一个项目。需要将DTO映射到实体,反之亦然。我的DTO没有Id字段,转换正在控制器层进行。另外两个类正在扩展我的实体,因此@Superbuilder。 我的转换实体- 但是DTO- 如果你们谁能帮我找到解决办法,我将不胜感激。提前感谢您的时间和回复。 =======我的DTO===== =====我的实体===== } ====ModelMapper的Bean===== =====
我在JPA实体映射方面有问题。我有一些课: A级 类别b Classc *如何解决这个问题?*我还能使用类继承吗?还是另一个解决这个的方法? 谢了。