2010-01-22 20 views
10

Hazırda bekletme eşleme yapılandırmasının veritabanıyla eşleşip eşleşmediği nasıl denetlenir? Güncellemeyi ve sorguları çalıştırmaya başlamadan önce, hazırda bekletme eşlemesinin yanlış sürümünü kullanıp kullanmadığımı bilmek istiyorum. Bu da başarısız olur.Hazırda bekletme eşlemesi veritabanıyla eşleme nasıl yapılır

Hazırda bekletme ek açıklamaları ile eşlenmiş sınıflarım var. Aynı zamanda ilgili veri tabanına da sahibim. Şimdi Hazırda bulunan eşlemenin veritabanıyla eşleşip eşleşmediğini kontrol etmek istiyorum.

Bazı şeyleri ardından en az kontrol etmek istiyorum: veritabanı (örneğin tablo veya görünüm) karşılık gelen nesne var hazırda yapılandırmasında

  • tüm eşlenen tablolar
  • tüm eşlenen alanları veritabanında mevcut
  • Tüm eşlenmiş alanlar, doğru tipte

Haritalandırılmış tablolara sorgu yürütmek zorunda kalmamayı tercih ederim, tercihen yalnızca veritabanı meta verisine dayalı bir kontrol. Hibernate configuration docs itibaren

cevap

14

: SessionFactory oluşturulduğunda

hibernate.hbm2ddl.auto

otomatik veritabanına şema DDL doğrular veya ihracat. Create-drop ile, SessionFactory açık bir şekilde kapatıldığında veritabanı şeması bırakılır.

örn. doğrulamak | Güncelle | oluştur | Oluşturun damla

Yani, validate şekilde ayarlayabilirsiniz ve hazırda eşleştirmeleri her şeyin veritabanında varsa o doğrulayacaktır. Bunu update olarak ayarlarsanız, eşlenen bir sınıfı veya özelliği her eklediğinizde, temeldeki db şeması bu değişikliği yansıtacak şekilde güncellenecektir. Ben arıyorum böyle SchemaUpdate

+0

Something -

Ayrıca bir komut satırı aracı var. Ancak API’de programlı olarak çalışabileceğim bir şey var mı? –

+1

Program aracılığıyla çalıştırabilirsiniz. "Doğrulama" açıkken bir SessionFactory oluşturan küçük bir program yazın. – duffymo

+0

evet, bir komut satırı aracı var - cevabımı ekledim. Ya da tercihen, duffymo'nun önerdiği şeyi yapın. – Bozho

İlgili konular