我有一个例子DgsQuery:
@DgsQuery
public List<Sensor> sensors(DgsDataFetchingEnvironment dfe) {
SensorType sensorType = SensorType.newBuilder()
.id(UUID.randomUUID().toString())
.build();
Sensor sensor = new Sensor();
sensor.setId(UUID.randomUUID().toString());
sensor.setName("foo");
sensor.setSensorType(sensorType);
return Arrays.asList(sensor);
}和一个数据采集器:
@DgsData(parentType = DgsConstants.SENSOR.TYPE_NAME, field = DgsConstants.SENSOR.SensorType)
public CompletableFuture<SensorType> sensorType(DgsDataFetchingEnvironment dfe) {
Sensor sensor = dfe.getSource();
UUID sensorTypeId = UUID.fromString(sensor.getSensorType().getId());
// fetch sensorType by ID from DB, map to generated class and return
LOGGER.info("Would now fetch sensorType with ID {} via RPC or whatever you want ;)", sensorTypeId);
return null;
}在dataFetcher中,我需要能够访问一些在@DgsQuery方法中初始化的额外数据/对象。我该怎么做?
示例应用程序:
在@DgsQuery中,有一个已经从数据库加载的实体,我需要将这个实体传递给数据获取器。
目前,我只能通过
Sensor sensor = dfe.getSource();但一些可能已经载入的进一步数据都没有。
发布于 2022-10-08 15:11:00
发现了:
@DgsQuery
public DataFetcherResult<List<Sensor>> sensors(DgsDataFetchingEnvironment dfe) {
SensorType sensorType = SensorType.newBuilder()
.id(UUID.randomUUID().toString())
.build();
Sensor sensor = new Sensor();
sensor.setId(UUID.randomUUID().toString());
sensor.setName("foo");
sensor.setSensorType(sensorType);
return DataFetcherResult.<List<Sensor>>newResult()
.data(Arrays.asList(sensor))
.localContext("foo")
.build();
}在数据获取器中:
Object localContext = dfe.getLocalContext(); ( --> "foo")https://stackoverflow.com/questions/73997652
复制相似问题