2013-05-28 40 views
20

我希望Hibernate创建数据库文件(SQLite),但只有在不存在的情况下。休眠:只有在不存在的情况下才创建数据库

现在在hibernate.cfg.xml我有这样一行:

<property name="hibernate.hbm2ddl.auto">create</property> 

的问题是,数据库文件中的所有时间被创建,即使该文件存在。

+0

我尝试这样做:<属性名= “hibernate.hbm2ddl.auto”>创建但它总是创建数据库。 – MAGx2

+1

显然你没有检查过hibernate手册,它解释了这个选项的不同变体。请记住,在发布问题之前,StackOverflow要求您自己做最少的研究。 – creinig

+0

我写了一个简单的解决方案来跟踪链接:http://stackoverflow.com/a/25549938/1736002 您可以使用'import.sql'。所以,如果不存在数据库,hibernate会创建新的数据库。 – cguzel

回答

31

尝试值切换到update

<property name="hibernate.hbm2ddl.auto">update</property> 
26

试试这个:

<property name="hibernate.hbm2ddl.auto">update</property> 

差异与update之间create是,update将更新数据库,如果已创建数据库表,如果不创建数据库表将创建。

create将创建数据库表。如果表已经创建,那么它将删除所有的表,并再次创建表。在这种情况下,您的数据将会丢失。

这是我个人建议使用update

相关问题