将java实体映射到GraphQL对象

时间:2016-10-19 10:07:06

标签: java hibernate graphql graphql-java

我很难在java项目中实现GraphQL作为更新它的一部分。我试图将实体(使用Hibernate ORM映射到不同的数据库)连接到GraphQLObjectType。有什么建议我怎么能做到这一点?如果可以,我可以省略GraphQL数据库配置吗?

3 个答案:

答案 0 :(得分:7)

这里有多个选项。

  • 最好不要直接映射实体。实体是DB的直接表示,因此,可能不应直接暴露,而是包含在DTO中(可能允许分页,扁平化关系或任何适当的)。
  • 如果您只需要将班级(实体与否)映射到GraphQLObjectTypegraphql-java-annotations是最简单(且最有限)的路线
  • 如果您想通过GraphQL公开整个实体图表,graphql-jpa可能是您最好的选择(Sriram suggests),因为它打算做到这一点,同时还要添加分页,聚合和排序
  • 如果您不仅要自动公开实体/ DTO类,还要自动公开它上面的操作(例如任意服务类),请查看graphql-spqr(我是该项目的作者)

答案 1 :(得分:1)

如果您已使用JPA / Hibernate定义了实体,请尝试以下操作:

Bootstrap v3.3.7

答案 2 :(得分:0)

您还可以检查graphql-maven-plugin-project,它会在客户端和服务器端生成所有必需的代码。在服务器端,它生成了JPA批注,并允许您个性化它们。

它在https://github.com/graphql-java-generator/graphql-maven-plugin-project上可用。 它的网站是https://graphql-maven-plugin-project.graphql-java-generator.com

艾蒂安