2013-01-18 16 views
5

İyi performans için hazırda bekleyen bir tablonun birincil anahtarı için bir dizin anotasyonu eklemem gerekiyorsa, @id ile bir alanı işaretlemenin bir endeks Hazırda bekletme tablosunun @id sütununda dizin oluşturmanız gerekiyor

@Id 
private String guid; 

oluşturuldu ama

oluşturulan ddl içinde oluşturulan hiçbir şey fark etmedi ama

@Id 
@org.hibernate.annotations.Index(name = "IDX_GUID") 
private String guid; 

sonra @total ek açıklama eklenen eğer bildirimi yapmak DDL'de oluşturulmuş bir dizin.

Bu yüzden her tablo için bunu yapmam gerektiğini düşünüyorum, ama benim bir parçamın, kesinlikle hazırda bekletme modunun birincil anahtar için bir başlangıç ​​noktası olarak oluşturulmasını istediği kadar gerekli olduğunu düşünmek olduğunu düşünüyorum.

cevap

6

Dizini açıkça oluşturmak zorunda değilsiniz. DDL ifadelerini görmek yerine; Hazırda bekletme tarafından oluşturulan son şemayı denetlemenizi tavsiye edeceğim. Dizin, oluşturma tablosu deyiminin bir parçası olarak oluşturulur.

+0

@Deepak, sadece anladığımı onaylamak için, Dizin oluşturma işleminin DDL (hbm2ddl) dışa aktarma işleminin bir parçası olarak ele alınmadığını mı söylüyorsunuz? Eğer öyleyse, DDL'yi büyük ölçüde işe yaramıyor mu, yoksa burada bir şeyi mi özlüyorum? Teşekkürler – paulkmoore

+0

@paulkmoore İndeksi iki şekilde oluşturabiliriz; yani. "İndeks oluştur ..." ya da belirtebileceğimiz tablo oluşturulurken. Tek söyleyeceğim, bu durumda birincil anahtar üzerindeki indeks, tablo oluşturulurken oluşturulur. – Deepak

+0

@Deepak, Tamam, birincil anahtar dizinleri ve diğer (genel) dizinler arasındaki farkı kaçırıyordum. Yardım için teşekkürler. – paulkmoore

İlgili konular