Я строю пример, в котором существуют модели домена Video и Image. Каждый из них имеет отношение «один ко многим» с моделью «Комментарий» следующим образом:
package commentstest
class Video {
static constraints = {
embeddUrl(blank:false,nullable:false,url:true)
}
String embeddUrl
static hasMany = [comments:Comment]
}
и
package commentstest
class Image {
static constraints = {
fileName(blank:false,nullable:false)
}
String fileName
static hasMany = [comments: Comment]
}
и, наконец, класс Comment
package commentstest
class Comment {
static constraints = {
body(blank:false,nullable:false)
}
String body
static belongsTo = [image:Image, video:Video]
}
Теперь проблема, с которой я сталкиваюсь, заключается в том, что когда я создаю «комментарий», его можно добавить к видео или к изображению. В настоящее время строительные леса заполняют как изображение, так и видео, и не дают возможности оставить пустым одно из этих полей.
У кого-нибудь есть идеи, как это сделать? Я уверен, что мои проблемы возникают из очереди:
static belongsTo = [image:Image,video:Video]
Но я не знаю, как указать, что он должен принадлежать одному ИЛИ другому. не оба.