2012-08-14 20 views
23

/PostgreSQL 9 veritabanı ile birlikte Hibernate. Aşağıdaki tablo varBenzersiz Kısıtlama Aşırı Çoklu Sütunlar

Active Band 
=========== 
active_band_id serial 
active_band_user text 
active_band_date timestamp 
active_band_process integer 

Her yeni giriş active_band_user ve active_band_date benzersiz bir bileşimini sahiptir sağlayan bir kısıtlama eklemek istiyorum.

var olabilir, potansiyel olarak ben varlık haritalama kullanabileceğiniz ek açıklama hazırda bekleme/a DİKİŞ var, bu mümkün olduğunca verimli olması gerekir böylece saniyede birçok teşebbüs uçlar olacak? peşin

+0

Bu http://stackoverflow.com/questions/3211972/specifying-restrictions-unique-together-in çoğaltmak için görünür: Ama otomatik veritabanı oluşturma kullanılması halinde veritabanına böyle bir sınırlama üretecektir açıklama yoktur Ben yok –

cevap

52

ekleme/güncelleme öncesinde benzersizliği denetler hiçbir hazırda ek açıklama bulunmamaktadır içinde

teşekkürler.

@Table(
    name="ACTIVE_BAND", 
    uniqueConstraints= 
     @UniqueConstraint(columnNames={"active_band_user", "active_band_date"}) 
) 
+0

Eclipse 'ek açıklaması için değer Table.uniqueConstraints bazı @ javax.persistence.UniqueConstraint açıklama olmalıdır öznitelik' olsun bu destekler düşünüyorum -hibernate. Bu yöntem SQL şemasındaki kısıtlamayı oluşturur mu? – DaveB

+0

Evet, destekliyor. Burada belgelenmiştir: http://docs.oracle.com/javaee/6/api/javax/persistence/Table.html#uniqueConstraints%28%29 Başka bir şey yanlış olmalı. Javax.persistence.UniqueConstraint içe aktarılıyor mu? –

+12

Bunu yıllar önce oldu biliyorum ama 'javax.persistence.Table' değil' org.hibernate.annotations.Table' kullandığınızdan emin olun. Hazırda bekleyen '@ Table' '' uniqueConstraints' alanı yoktur. – Patrick

İlgili konular