当前位置: 首页 > 知识库问答 >
问题:

在spring-r2dbc中忽略更新字段

齐奕
2023-03-14

我使用的是Spring r2dbc和ReactiveCrudRepository,我有一个在生成更新查询时需要忽略的字段

@Data
@Table(PRODUCT_TABLE)
public class ProductEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO) // Id generated by database
    private Integer id;

    private Integer companyId;

    @Column(insertable=false, updatable = false)
    private String companyName;

    @NotBlank
    private String name;

    private VerificationStatus verificationStatus;
}

如何在更新查询中忽略companyName。我可以在使用@列的插入查询中忽略它,但它不适用于更新

共有2个答案

宗政鸿志
2023-03-14

简化使用

@ReadOnlyProperty

例如

@ReadOnlyProperty
private String companyName;

https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/annotation/ReadOnlyProperty.html

蔚宏大
2023-03-14

如果不想保留该字段以进行更新和插入,请使用瞬态标记该字段。

例如

@Transient
private String companyName;

https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/annotation/Transient.html

 类似资料:
  • 我有一个DB中的人员列表,每个人都有一个CV字段,这是一个Spring中的多部分文件。我试图从数据库中获取所有的人,但忽略CV字段,因为我不想在使用getAllPerson函数时被下载。有可能?

  • 我的应用程序中有一个接受日志的控制器。当我发送一个空的json对象(“{}”)或有效请求,但有一个或多个空字段时,它会自动反序列化为一个空的LogDTO对象或一个字段设置为0(对于数字字段)的LogDTO。我想拒绝字段为空的请求。 我的控制器: LogDTO对象: 我也尝试在我的应用程序属性中设置“spring.jackson.default-属性-包含=非默认”,但它一直将字段设置为“0”。有什

  • 现在我用mybatis更新PostgreSQL 13记录,我想用user id更新用户表中的apple purchase prouct id,这是我的代码: 我给出了用户实体id和产品id,通过使用用户id更新产品id。这是使用mybatis的更新执行代码: 但是mybatis遗传sql会导致这样的错误: 我该怎么做才能修好它?

  • 我有一个存储库,其findAll方法用标记。我正在将生成的SQL打印到日志中,我可以看到当直接在Java中使用时,它会生成正确的连接选择(即)。但是当我通过REST调用它时,这种情况不会发生。我要么得到一个异常,BC。懒加载代理不能序列化,或者如果我添加杰克逊-数据库-hibernate5,我可以看到额外的查询。 我尝试在这里生成最小复制:https://github.com/cptwunderl

  • 作为开发人员,我使用以下endpoint:https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/batchUpdate 并要求:https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/request#AppendCells