我在谷歌和stackoverflow上搜索了很多。大多数例子都来自Spring引导。我是springboot的新手。我对如何使用图形ql获取数据非常困惑。在下面的示例中,我有一个报表组,其中可以包含多个报表。
如何获取组的详细信息以及自定义报告详细信息?
我应该使用什么?解析程序/数据获取程序?
如果是解析器,请帮助我进行适当的解释
结果应该是:
{
group{
name : xyz
reports [
{
id:7
name : report1
},
{
id:8
name : report2
},
{
id:9
name : report3
}
]
}
}
ReportGroup类
@Entity
@Table(name = "reportgroup")
public class ReportGroup{
private String name;
private List<CustomReport> customReports;
}
public String getName() {
return this.name;
}
public void setName(final String name) {
this.name = name;
}
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "report_group_custom_report", joinColumns = {
@JoinColumn(name = "REPORT_GROUP_ID") }, inverseJoinColumns = {
@JoinColumn(name = "CUSTOM_REPORT_ID") })
public List<CustomReport> getCustomReports() {
return this.customReports;
}
返回组和报告的其余api调用
@RequestMapping(value = "/secure/getReportGroupDetail/{name}", method = RequestMethod.POST)
public ResponseBody<GroupDTO> getReportGroupDetail(
@PathVariable("id") final Integer id,
final HttpServletRequest request) throws RecordNotFoundException {
final ReportGroup group = this.reportGroupService.getReportGroupDetail(id);
return new ResponseBody(dto, Constants.SUCCESS);
}
团体ervice.java
@Transactional(readOnly = true)
public ReportGroup getReportGroupDetail(final Integer id){
return this.reportGroupDAO
.findById(id);
}
模式:
schema {
query: Query
}
type Query {
reportgroup:ReportGroup
}
type ReportGroup{
name:String!,
customReport : [CustomReport]
}
数据获取程序
public class ReportGroupDataFetcher implements DataFetcher<ReportGroup> {
@Autowired
ReportGroupService reportGroupService;
@Override
public Group get(final DataFetchingEnvironment env) {
Group group = this.reportGroupService.getReportGroupDetail(1);
return group;
}
}
控制器
@RequestMapping(value = "/secure/getGroupDetail", method = RequestMethod.POST)
public ResponseBody<Object> getGroupDetail(
@RequestBody final JsonData jsonData,
final HttpServletRequest request) {
final JSONObject jsonRequest = new JSONObject(jsonData.getData());
final GraphQL graphQL = this.schemaBuilder.getGraphQL();
final ExecutionInput executionInput = ExecutionInput.newExecutionInput()
.query(jsonRequest.getString("query")).build();
final ExecutionResult executionResult = graphQL.execute(executionInput);
return new ResponseBody(executionResult, Constants.SUCCESS);
}
加载模式
public class SchemaBuilder {
@Autowired
ReportGroupDataFetcher reportgroupDataFetcher;
public GraphQL getGraphQL() {
final SchemaParser schemaParser = new SchemaParser();
final SchemaGenerator schemaGenerator = new SchemaGenerator();
final File schemaFile = new File(myFileName);
final TypeDefinitionRegistry typeRegistry = schemaParser
.parse(schemaFile);
final RuntimeWiring wiring = buildRuntimeWiring();
final GraphQLSchema graphQLSchema = schemaGenerator
.makeExecutableSchema(typeRegistry, wiring);
return GraphQL.newGraphQL(graphQLSchema).build();
}
private RuntimeWiring buildRuntimeWiring() {
return RuntimeWiring.newRuntimeWiring().type("Query",
typeWiring -> typeWiring
.dataFetcher("reportgroup", this.reportgroupDataFetcher))
.build();
}
}
您还需要定义您的客户群数据。试试下面的方法。
schema {
query: Query
}
type CustomReport{
id:Int!,
name:String!
}
type Query {
reportgroup:ReportGroup
}
type ReportGroup{
name:String!,
customReport : [CustomReport]
}
我试图从一个相当复杂的Java对象生成一个CSV文件。该对象是一个会话,具有一些属性,字符串和消息的列表,这些字符串和消息又具有一些属性,还有一个注释的列表,这些注释具有一些属性。 session类如下所示; 消息类如下所示; 事实上,开始认为(单一的)CSV可能不是解决这个问题的最佳方法。
问题内容: 我有一个很长的JSON与Gson一起解析,但是为了简洁起见,我将其修剪为以下示例: 从SO和其他几个地方,我发现我需要定义一个顶级容器,例如下面的容器,但我不知道如何完成其定义 然后每堂课 我正在尝试解析它,这是到目前为止我编写的代码: JSON字符串存储在名为response的变量中 我的最终要求是of,并且关联。 问题答案: 第一个问题 :您的需求是: 它不必是静态的。 第二个
我有一个用例,我有一个java Map,我转换成ProxyMap,在javascript中使用该映射,使用context.eval,然后在js(嵌套json)中创建一个新对象。现在我想使用在javascript中创建的对象,最好是一个Map。 现在我的js创建的对象是动态的,我不知道所有的字段可能会出现。 所以我现在做的基本上是: 现在我需要得到这个作为Java中的Map。 我发现,我可以使用访问
我想序列化Internet上的一个复杂Java对象。第一次,我使用Google Gson来序列化这个类。Gson提供了一种将对象序列化为JSON字符串并通过toJson和fromJson从JSON字符串反序列化到对象的简单方法。然而,JSON字符串并不是很紧凑,在序列化字节[]数组时会带来很大的开销。 我正在阅读Google协议缓冲区。根据教程,用户必须手动为每条消息编写. proto文件。协议缓
我有一个gprsEvents列表,其中列表中的每个元素都是一个映射 ,如下所示。我需要: null 我开始考虑使用Java8Stream(groupingBy):gprsents.stream().collectors.groupingBy(Map->map.Get(“CallChargingID”).ToString())) 我现在坚持得到合适的结果,特别是在一个单一的地图和上面提到的字段的列表
我是graphql新手,使用官方graphql发现了2个java实现:https://www.graphql-java.com/documentation/v10/ 和 https://github.com/graphql-java-kickstart/graphql-java-tools 比如在java中实现graphql有什么不同?
问题内容: 我有两个从JSON转换的数据对象。两者都非常复杂,我想以类似于jQuery使用扩展合并两个对象的方式来合并它们。 例 JSON 1: JSON 2: 合并成 用PHP对象解决此问题的最佳方法是什么。 问题答案: 将每个JSON字符串解码为一个关联数组,合并结果并重新编码 更新: 如果您有特定的合并要求,则需要编写自己的合并功能。我在下面写了一篇满足您问题中要求的书。如果您有其他未提及的
例如,我有点混淆这两个术语——合并排序、heapsort和插入排序的辅助空间是O(1),而合并排序、插入排序和heapsort的空间复杂度是O(n)。 所以,如果有人问我合并排序、堆排序或插入排序的空间复杂度是多少,我应该告诉他们O(1)还是O(n)? 另外,请注意,在选择排序的情况下,我已经阅读了它的空间复杂度是 O(1),这是辅助空间。 那么,使用“就地计算”的算法是否有可能,对于这些算法,我