我想從另一個「狀態」基礎上刪除幾個對象。我不斷收到「刪除的對象將被重新保存級聯...」錯誤。Grails錯誤 - 刪除對象將被重新保存
我已經搜索這個問題,閱讀所有帖子,嘗試了各種建議,但仍然無法使其工作。
我有兩個互相引用的域。這是代碼。希望有人能告訴我我做錯了什麼。而且,我是Grails的新人。如果它傾倒在我身上,所以我還在學習。
class Room {
static def hasMany = [devices : Device]
static def hasOne = [status: RoomStatus]
Integer roomId
String name
static constraints = {
roomId unique: true
}
static mapping = {
devices sort:'id', order: 'asc'
}
}
class Device {
static def belongsTo = [room: Room]
static def hasOne = [status: DeviceStatus]
Integer deviceId
String name
static constraints = {
deviceId nullable: true, unique: true
}
static mapping = {
}
}
下面是我用來從房間中刪除「已刪除」狀態的所有設備的方法。它是在房間控制器:
def removeDeletedDevices(Long id) {
def roomInstance = Room.get(id)
if (!roomInstance) {
// redirect to error page
return
}
for (def device : roomInstance.devices) {
if (true == device.status.toString().equals("Deleted")) {
try {
device.delete(flush: true)
} catch (DataIntegrityViolationException e) {
// report error
break;
}
}
}
// redirect to report page.
}
我之前刪除試圖
- roomInstance.removeFromDevices(設備)。
- beforeDelete在設備控制器
至今沒有運氣。我究竟做錯了什麼?
可能重複[這裏](http://stackoverflow.com/a/17412425/2051952)。 – dmahapatro