Я хотел бы знать, есть ли у кого-нибудь идеи о том, как обеспечить, чтобы в объединяющей таблице mm_author_books
как убедиться, что столбцы (mm_book_id
и mm_author_id
) уникальны?Например, я не хочу, чтобы таблица содержала повторяющиеся записи book_id
и author_id
, такие как 1,1 и 1,1.Итак, как это сделать ...
class Book {
String title
static belongsTo = Author
static hasMany = [authors:Author]
static mapping = {
authors joinTable:[name:"mm_author_books", key:'mm_book_id' ]
}
}
class Author {
String name
static hasMany = [books:Book]
static mapping = {
books joinTable:[name:"mm_author_books", key:'mm_author_id']
}
}
Я пробовал это в домене "mm_author_books":
class mm_author_books {
String book_agency_name
static constraints = {
book_agency_name(unique:['mm_author_id','mm_book_id'])
}
static belongsTo = [authors:Author, books:Book]
}
, но получаю следующую ошибку:
Вызывается: org.codehaus.groovy.grails.validation.exceptions.ConstraintException: исключение, вызванное применением ограничения [unique] к классу [class content_hub_admin.mm_author_books] для значения [[mm_author_id, mm_book_id]]: область действия для ограничения [unique] ofсвойство [имя] класса [class content_hub_admin.mm_author_books] должно быть допустимым именем свойства того же класса в content_hub_admin.mm_author_books $ _ clinit _closure1.doCall (mm_author_books.groovy: 6) в content_hub_admin.mm_aut_ clinit _closure1.doCall (mm_author_books.groovy) ... еще 28
Спасибо и всего наилучшего
rsheyeah