У меня есть следующие классы доменов:
Праздник :
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
.Обратите внимание, что я не включил belongsTo
в класс Holiday
.Теперь я написал следующий интеграционный тест:
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
, но когда я запускаю операторы assert, я вижу, что GORM неявноудалено holiday1
тоже.И мои тестовые случаи имеют PASSED !Как это может произойти, даже если я не указал ключевое слово belongsTo
в классе Holiday
?
Я использую Grails версии 1.3.7.