spring-boot - Netflix DGS 与 JPA

标签 spring-boot jpa spring-data-jpa netflix-dgs

我一直在使用 Netflix GraphQL 框架 DGS 。使用 codegen 插件,我可以直接从架构生成模型类。

我的问题是如何为这些生成的类添加持久性。我是否只是将注释添加到生成的类中,在这种情况下,如果重新生成类,它们不会被删除吗?或者我是否为 JPA 创建另一组类并在这两组类之间进行映射?

最佳答案

您应该问自己的第一个问题是 JPA 模型是否真的是您想要通过 GraphQL API 公开的模型。对于简单的用例,这可能没问题,但通常最好将两个模型分开。

根据您如何回答上述问题,有以下三个选项:

  1. GraphQL 和 JPA 模型应该分开;这意味着您需要在代码中映射类。 (有一些库可能会有所帮助)。

  2. JPA 模型确实是您想要在 API 中公开的模型。手动创建 JPA 类并在数据 getter 中使用它们。不必费心使用架构中的 codegen,因为您的数据库现在就是您的模型。

  3. 作为访问上述第二个选项的快捷方式,您可以进行一次性生成,将生成的代码复制到源目录中,然后从那里手动管理类。

尽管这需要更多工作,但我通常会推荐选项 1。

关于spring-boot - Netflix DGS 与 JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66806283/

相关文章:

java - @RequestMapping 在 Spring 版本 1.5.2.RELEASE 中不起作用

java - JPARepository 接口(interface)是否涵盖了 Spring Boot 中 DAO 接口(interface)的职责?

java - 分离实体上的 JPA merge() 在存在时进行插入

java - 制作多个 EntityManagers(Spring-Boot-JPA、Hibernate、MSSQL)

Spring 正在失去与数据库的连接,并且无法恢复或重新连接

java - 我如何使用 Kafka Consumer 的动态主题

java - 我应该在这里使用什么注释?@OneToMany 还是@OneToOne?

java - Spring JPA 查询检查参数列表中是否至少存在一个列表元素

java - Liquibase 脚本失败

java - 如何将 spring 数据示例匹配器用于列表属性 - 查询问题