我有以下域類:爲什麼GORM執行級聯刪除,即使省略belongsTo關鍵字?
假日:
class Holiday {
String justification
User user
//static belongsTo = User
static constraints = {
}
}
用戶:
class User {
String login
String password
static hasMany = [ holidays : Holiday ]
static constraints = {
}
}
我已經創建Holiday
和User
之間的一對多關係。請注意,我沒有在Holiday
類中包含belongsTo
。現在,我寫了下面的集成測試:
void testWithoutBelongsTo() {
def user1 = new User(login:"anto", password:"secret")
user1.save()
def holiday1 = new Holiday(justification:"went to trip")
holiday1.save()
user1.addToHolidays(holiday1)
assertEquals 1, User.get(user1.id).holidays.size()
user1.delete()
assertFalse User.exists(user1.id)
assertFalse Holiday.exists(holiday1.id)
}
顯然,在上述試驗的情況下,我只刪除user1
實例,但是當我斷言語句來看,我可以看到GORM已經隱含刪除holiday1
,太。我的測試案例有PASSED!儘管我沒有在Holiday
類中給出belongsTo
關鍵字,但是如何發生這種情況?
我正在使用Grails版本1.3.7。
只是一個建議:使用簡單的Groovy的斷言而不是JUnit的assertEquals,它有更好的錯誤報告。 – Antoine