使用@Transient和spring.jpa.hibernate.ddl-auto = none的非标记字段

时间:2018-09-05 17:20:04

标签: spring hibernate

对应用程序的行为/影响

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

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

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

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

说过春天的财产 spring.jpa.hibernate.ddl-auto = none。

1 个答案:

答案 0 :(得分:0)

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

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

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