0
我要訂閱添加到用戶類,我通過調用「AddTo就」的方法做到這一點,這裏是我的代碼:Grails框架方法AddTo就拋出多個異常調用
if (params.jobs == "on") {
user.addToSubscriptions(Category.findWhere(id: 1L))
} else {
user.removeFromSubscriptions(Category.findWhere(id: 1L))
}
的「PARAMS」來了從複選框中,用戶可以通過設置複選框來訂閱某個類別。上面的代碼在提交表單時被調用。當用戶改變超過1類,如上認爲相同的代碼不同params.x,這樣
if (params.offers == "on") {
Category cat = Category.get(2)
if (!user.subscriptions.contains(cat))
user.addToSubscriptions(Category.findWhere(id: 2L))//needs long variable
} else {
user.removeFromSubscriptions(Category.findWhere(id: 2L))
}
什麼也恰好只有類別至極什麼不工作是首先在代碼獲取添加和刪除,所有其他拋出以下異常:
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
編輯: 在至極行拋出異常是這個壽,至極沒有意義的,我:(
編輯: 的異常被拋出w如果我想添加一個類別,它已經添加,它也不會被刪除。 (這隻適用於代碼中未先處理的類別,請不要問我爲什麼)
//reload page
redirect(action: "userSettings")
我該怎麼辦?請幫忙! 提前感謝! Daniel
嗯謝謝你,但它沒有幫助。問題是隻有當我想添加它和它已經添加的時候纔會拋出異常。但是如果(!user.subscriptions.contains(cat))檢查你的方法,它仍然會被拋出。對於除了在代碼中首先處理的所有類別,不可能刪除類別,我在控制檯中打印user.subscriptions。這無濟於事。 – dan
我給你upvote,因爲如果(user.subscriptions.contains(cat)我可以修復另一個問題,我沒有提到這裏:)可悲的訂閱事情仍然不起作用 – dan
你試過打印錯誤嗎?你能把它們粘貼在這裏嗎?我可以看到你已經在你的問題中編輯了代碼示例,但是你忘記了編輯else子句。這似乎相當重要。 – Krystian