我有一个表定义如下:
@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。
答案 0 :(得分:0)
由于您使用的是Hibernate,因此有一个属性可以自动更新您的架构: hibernate.hbm2ddl.auto ,其值为更新
https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html
(但请注意,不建议在生产中使用它)