我有一个定义如下的表:
@Entity
@Table(
uniqueConstraints = {@UniqueConstraint(columnNames = {"reward_id", "transaction_id"})}
)
public class ShipmentItem extends Model {
...
}
我想更改唯一约束以使其更宽松:
@Entity
@Table(
uniqueConstraints = {@UniqueConstraint(columnNames = {"reward_id", "transaction_id", "sku"})}
)
public class ShipmentItem extends Model {
...
}
更新后的代码可以编译,但 JPA 不会更改表架构。是否有我需要使用的配置设置?
如果 JPA 不能做到这一点,那么解决这个问题的系统方法是什么?我可以编写迁移,但是,JPA 会自动生成约束的名称,因此如何删除旧约束并不明显。
不确定这是否重要,但我正在使用 hibernate 和 mysql。
最佳答案
由于您使用的是 Hibernate,因此有一个属性可以自动更新您的架构:hibernate.hbm2ddl.auto 的值为 update
https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html
(但请注意,不建议在生产环境中使用它)
关于java - 更新 JPA 表上的 UniqueConstrains,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36496412/