Я пытаюсь соединить две сущности с n:m
отношениями, полосами и событиями. Когда событие удалено, группа должна остаться. Однако полоса не может быть удалена во время части события.
Прикрепленный тестовый пример завершается неудачно со следующим журналом:
2020-03-02 21:54:32.583 [Test worker] DEBUG c.j.t.dnq.database.ConstraintsUtil - Cannot check links cardinality for entity XdEvent: id = 0-0. Entity metadata for its type [XdEvent] is undefined
2020-03-02 21:54:32.583 [Test worker] DEBUG c.j.t.dnq.database.ConstraintsUtil - Cannot check links cardinality for entity XdBand: id = 1-0. Entity metadata for its type [XdBand] is undefined
Кажется, проблема в том, что отсутствуют метаданные объекта, но я не могу найти любые сопутствующие документы или аналогичные вопросы. Кто-нибудь знает исправление?
Entites
class XdBand(entity: Entity) : XdEntity(entity) {
companion object : XdNaturalEntityType<XdBand>()
var name by xdRequiredStringProp(unique = true)
var image by xdBlobProp()
val events: XdMutableQuery<XdEvent> by xdLink0_N(XdEvent::bands, onDelete = OnDeletePolicy.FAIL)
}
class XdEvent(entity: Entity) : XdEntity(entity) {
companion object : XdNaturalEntityType<XdEvent>()
var date by xdRequiredDateTimeProp()
/**
* Milliseconds since midnight
*/
var startTime by xdIntProp()
/**
* Milliseconds since midnight
*/
var endTime by xdIntProp()
val bands : XdMutableQuery<XdBand> by xdLink1_N(XdBand::events, onDelete = OnDeletePolicy.CLEAR)
}
Контрольный пример
@Test(expected = ConstraintsValidationException::class)
fun testCannotRemoveBandWithEvent() {
val bandName = "Some Band"
Database.store.transactional {
val event = XdEvent.new {
date = LocalDate.now().toDateTime(LocalTime.MIDNIGHT)
startTime = 0
endTime = 0
}
XdBand.new {
name = bandName
events.add(event)
}
}
Database.store.transactional {
XdBand.all().first().delete()
}
}