2013-05-28 30 views
20

Tôi muốn Hibernate tạo tệp cơ sở dữ liệu (SQLite), nhưng chỉ khi không tồn tại.Hibernate: chỉ tạo cơ sở dữ liệu nếu không tồn tại

Bây giờ trong hibernate.cfg.xml Tôi có dòng này:

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

Vấn đề là tập tin cơ sở dữ liệu được tạo ra trong tất cả các thời gian, ngay cả những tập tin tồn tại.

+0

Tôi cố gắng này: tạo nhưng nó luôn luôn tạo ra cơ sở dữ liệu. – MAGx2

+1

Vì vậy, dường như bạn đã không kiểm tra sổ tay hibernate, giải thích các biến thể khác nhau của tùy chọn đó. Hãy nhớ rằng StackOverflow yêu cầu bạn phải tự mình nghiên cứu tối thiểu trước khi đăng câu hỏi. – creinig

+0

Tôi đã viết một giải pháp dễ dàng để theo liên kết: http://stackoverflow.com/a/25549938/1736002 Bạn có thể sử dụng 'import.sql'. Vì vậy, nếu không tồn tại cơ sở dữ liệu, hibernate sẽ tạo ra db mới. – cguzel

Trả lời

31

Hãy thử chuyển đổi các giá trị cho update

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

Hãy thử này:

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

Sự khác nhau giữa createupdate là, update sẽ cập nhật cơ sở dữ liệu của bạn nếu bảng cơ sở dữ liệu đã được tạo ra và sẽ tạo ra nếu bảng cơ sở dữ liệu không được tạo ra.

create sẽ tạo các bảng cơ sở dữ liệu. Và nếu các bảng đã được tạo thì nó sẽ thả tất cả các bảng và tạo lại các bảng. Trong trường hợp này dữ liệu của bạn sẽ bị mất.

Tư vấn cá nhân của tôi là sử dụng update.

Các vấn đề liên quan