2013-03-05 26 views
0

創建多個唯一列我有這個Grails領域類:一個問題,而與格姆

class MyClass { 

    static auditable = true; 

    String description; 
    Boolean isActive=true; 
    Date deletedAt; 


    static constraints = { 
     description size: 1..250, blank: false, unique:['deletedAt', 'isActive'], index:'myclass_idx' 
     deletedAt nullable: true, index:'myclass_idx' 
     isActive index:'myclass_idx' 
    } 
} 

我希望它做的是建立一個約束,這將不允許重複的記錄,像這樣的:

id| description | is_active | deleted_at 
1 | desc1  | true  | (null) 
2 | desc1  | true  | (null)

但是,這種情況發生。我在這裏錯過了什麼?

UPD:發現只有當空值相互比較時纔會發生這種情況。如果deleted_at包含兩個相等的日期值,則約束起作用。

是否有一個解決方法嗎?

回答

0

最後決定使用deletedAt字段的默認非空值。