如何处理 GraphQL SPQR 中的身份字段

How to handle identity fields in GraphQL SPQR

假设我有

@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="trade_id")
    int tradeId;

当我从数据库中查询这个时,我会想要获取 tradeId。但是,在执行创建时,显然我没有 tradeId,因为数据库会在我插入时生成它。

input TradeInput {
  tradeId: Int!
...

但是 SPQR 为我生成的模式正在将此字段设置为 Not Null。

所以我的问题是,如何防止此字段自动出现为 Not Null,这样我就不必在创建时将其发送下来,但可以检索它。

一个int根本不可能是null。但是你有几个选择:

  • 将其转换为 ID 标量类型(使用 @GraphQLId)而不是 Int
  • 通过@GraphQLInputField
  • 给它一个默认值
  • 使用 Integer 而不是 int,因为 Integer 可以为空