我是Spring的新人。我终于成功构建了我的应用程序而没有错误,但是当我查看输出时,我有很多我不理解的信息。
首先这个错误每个表,它似乎是一个Hibernate / Spring bug:
Hibernate: alter table entity.administrationaction drop constraint FKjaafjywumaavhae5kjyo34gx5
2016-11-13 12:16:41.475 ERROR 2156 --- [ main] org.hibernate.tool.hbm2ddl.SchemaExport : HHH000389: Unsuccessful: alter table entity.administrationaction drop constraint FKjaafjywumaavhae5kjyo34gx5
2016-11-13 12:16:41.475 ERROR 2156 --- [ main] org.hibernate.tool.hbm2ddl.SchemaExport : ERREUR: la relation « entity.administrationaction » n'existe pas
然后对每个表格:
Hibernate: drop table if exists entity.administrationaction cascade
然后对每个表格:
Hibernate: create table entity.administrationaction (id serial not null, action int4, creation_date timestamp, entity_class varchar(255), entity_id int4, message varchar(255), administrator_id int4, primary key (id))
所以就像Spring试图删除我的所有数据库并重新创建它一样。为什么?这是正常的还是我做错了什么?
答案 0 :(得分:11)
放入application.properties/application.yml
spring.jpa.hibernate.ddl-自动=更新
可以使用值
设置此属性1. update (Update the schema if necessary)
2. create (create the schema and destroy previous data)
3. create-drop (create and then destroy the schema at the end of the session)
4. none (disable ddl handling)
5. validate (validate the schema , make no changes to the database)
答案 1 :(得分:4)
查找hibernate.hbm2ddl.auto
设置。您可能已将其设置为create-drop
。
答案 2 :(得分:1)
我在这里发现自己不了解Spring为何默认为create-drop
的一些其他信息:
spring.jpa.hibernate.ddl-auto
String
: DDL模式。这实际上是“ hibernate.hbm2ddl.auto”属性的快捷方式。使用嵌入式数据库且未检测到任何模式管理器时,默认值为“ create-drop”。否则,默认为“无”。
来源:Javadoc
答案 3 :(得分:0)
spring.jpa.hibernate.ddl-auto=none
这对我有用,它没有弄乱桌子,只用了它。