更新JPA表上的UniqueConstrains

时间:2016-04-08 09:43:16

标签: java mysql hibernate jpa jpa-2.0

我有一个表定义如下:

@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。

1 个答案:

答案 0 :(得分:0)

由于您使用的是Hibernate,因此有一个属性可以自动更新您的架构: hibernate.hbm2ddl.auto ,其值为更新

https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html

(但请注意,不建议在生产中使用它)