我知道這個問題與其他帖子有關,但是他們都沒有解決我的問題。Grails唯一約束無法更新
我正在使用Grails 2.5.1
,使用oracle數據庫。我有domain class CardMaster
。它包含user_id, card_no and password
。
在約束條件中,我定義了card_no
是unique
由user_id
。
然後我想用user_id
爲Primary Key
,所以我按地圖id
:
id name:'user_id', generator: 'assigned'
然而,當我發現和findByUser_id
更新記錄。我有一個錯誤。它說card_no
必須是唯一的,並且無法保存。
我讀other posts,他們說改變主鍵似乎沒有被映射爲id
。如果我通過改變映射:
id column:'user_id', generator: 'assigned'
它成功保存,但在表2列名爲user_id
顯示,1節禮物user_id
和其他的id
。
任何解決方案,將不勝感激。
謝謝。
更新
這裏是域類的完整代碼:
class CardUserMaster {
String card_no
String user_id
String password
static constraints = {
card_no(nullable: false, blank: false, maxSize: 19, unique: 'user_id')
user_id(nullable: false, blank: false, maxSize: 10, minSize: 6)
password(nullable: false, blank: false, maxSize: 32, minSize: 8)
static mapping = {
table('CARDUSER_MASTER')
id name: 'user_id'
version false
id generator: 'assigned'
}
}
好吧,在同一個表中不可能有兩個同名的列。其他事情正在發生。如果您發佈域類的代碼,這將會有很長的路要走。 –
你在這裏。伊曼紐爾羅莎。 –