【问题标题】:Non marking field with @Transient and with spring.jpa.hibernate.ddl-auto=none使用 @Transient 和 spring.jpa.hibernate.ddl-auto=none 的非标记字段
【发布时间】:2018-09-05 17:20:03
【问题描述】:

对应用程序的行为/影响

如果我不使用 @Transient 注释标记字段并设置属性 spring.jpa.hibernate.ddl-auto=none?

示例: 实体:Product.java [id, name, amount, discount] 字段折扣是由同一类中的某些业务逻辑计算的字段。

这被映射到表: product_master (id, nm, amt) 我的问题是:

如果我不使用 @Transient 注解标记属性折扣并尝试对产品实体进行 CRUD 操作会发生什么。

话说弹簧属性 spring.jpa.hibernate.ddl-auto=none.

【问题讨论】:

    标签: spring hibernate


    【解决方案1】:

    如果您不将 discount 标记为 @Transient,您的 CRUD 将失败

    如果您不将discount 标记为@Transient,JPA 将在对数据库的所有查询中包含此字段。如果您尝试在表中执行 INSERT,discount 字段将包含在您的创建查询中,并且它将失败,因为您的数据库表中不存在 discount 字段。

    spring.jpa.hibernate.ddl-auto 与@Transient 无关

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 2022-08-11
      • 2021-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多