hibernate列的唯一属性没有变化

时间:2018-05-18 08:54:07

标签: java postgresql hibernate spring-mvc

有没有办法在不删除表的情况下将列属性从unique=true更改为unique=false

现在我陷入了早先创建表并且这些表也包含数据的情况。当我将unique=true更改为unique=false时,它不会在表格中进行任何更改。

2 个答案:

答案 0 :(得分:0)

您可以在数据库中轻松完成此操作。假设我有一个表Person_name具有唯一约束的人。

ALTER TABLE Person
DROP INDEX Person_name;

or

ALTER TABLE Persons
DROP CONSTRAINT Person_name;

如果你尝试使用hibernate实现相同的功能,hibernate会尝试再次删除并创建表,这是你不希望发生的。

答案 1 :(得分:0)

嗯......我不知道你是否可以允许自己进行数据库删除,但是你可以尝试使用你的应用程序属性文件:

spring.jpa.hibernate.ddl-auto=update

spring.jpa.hibernate.ddl-auto=create-drop

了解更多信息:
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html

此外,如果您知道数据库架构中会有很多更改,并且您希望使其易于工作,那么您应该熟悉 https://www.liquibase.org/