我正在使用graphql-spqr這樣我就不必創(chuàng)建schema.graphql文件了。我有一個基類,我的大多數(shù)其他類都繼承自該基類。例如@GraphQLInterface(name = "BaseResponse", implementationAutoDiscovery = true)@ToString@Datapublic class BaseResponse { @JsonInclude(Include.NON_NULL) protected String responseCode; @JsonInclude(Include.NON_NULL) protected String responseDescription; protected String hash;}其他類繼承自上述基類如下@ToString(callSuper = true)@Data@AllArgsConstructorpublic class GetAllGroupResponse extends BaseResponse { private List<Group> groups;}GetAllGroupResponse當(dāng)我設(shè)置如下所示的父值時 getAllGroupResponse.setResponseCode(ResponseCodeEnum.SH_97.getRespCode()); getAllGroupResponse.setResponseDescription(ResponseCodeEnum.SH_97.getRespDescription());我希望從我的 graphql 查詢請求中檢索 responseCode 的值{ getAllPagable(pageNumber : 1, numberOfRecords : 3) { responseCode groups { groupName } }}但它在下面拋出一個錯誤,告訴我它看不到 responseCode 變量,因為它不是該類的直接屬性GetAllGroupResponseFieldUndefined 類型的驗證錯誤:“GetAllGroupResponse”類型中的字段“responseCode”未定義@“getAllPagable/responseCode”附言。BaseResponse來自導(dǎo)入到當(dāng)前項目的不同包/庫項目
1 回答

哈士奇WWW
TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊
我認(rèn)為您所需要的只是為您的項目設(shè)置基礎(chǔ)包。例如
generator.withBasePackages("your.root.package", "library.root.package")
或者,如果您使用的是 SPQR Spring Starter,請?zhí)砑?/p>
graphql.spqr.base-packages=your.root.package,library.root.package
到您的application.properties
文件,以獲得相同的效果。
當(dāng)你有一個跨多個包(甚至庫,就像你的情況)的類層次結(jié)構(gòu)時,這是需要的,讓 SPQR 知道應(yīng)該公開哪些包,因為否則它可能會意外地公開一些框架代碼甚至核心 Java 東西,比如getClass。
添加回答
舉報
0/150
提交
取消