2010-01-15 36 views
5

Ben -Basitleştirilmiş ile Grails uygulama var. (Bunlar DB'de birincil anahtar olmalıdır).Grails etki alanı kısıtlamaları tanımı

Böyle bir kısıtlamayı nasıl tanımlarım?

Şimdiden teşekkürler çok

Luis

+1

sadece Grails değil, Groovy on Grails. –

cevap

6

Bunun bir composite primary key DB bu eşleştirmeyi beyan etmek zorunda kalacak olmasını istediğim için: (Aşağıdaki tabloya üretir

class Capacity implements Serializable { 
    Date month  
    Company company 
    String note 
    ... 

    static mapping = { 
     id composite:['month', 'company'] 
    } 
} 

MySQL):

CREATE 
    TABLE capacity 
    (
     MONTH DATETIME NOT NULL, 
     company_id bigint NOT NULL, 
     version bigint NOT NULL, 
     note VARCHAR(255) NOT NULL, 
     PRIMARY KEY (MONTH, company_id), 
     INDEX FKFBF514BA69595C7A (company_id) 
    ) 
    ENGINE=MyISAM DEFAULT CHARSET=latin1 
+0

teşekkürler! Bu tam olarak ne aradığım – Luixv

+0

Bu hala validate() 'sırasında benzersizliği zorluyor mu? Değilse, bu cevabın ve Dave'in bir kombinasyonunun gerekli olduğunu düşünüyorum. Aksi halde Grails doğrulama hataları yerine SQL kısıtlaması istisnaları elde edersiniz. –

+0

@RobHruska Kısıtlamalardan bazıları, birim sınamasında (Grails 2.0'dan önce) doğrulamak ve orada olmaması için veritabanının durumunu kullanır. –

İlgili konular