У меня есть устаревшая БД с довольно простой структурой. У меня есть "Rolls", которые содержат "RollTotals".
Roll имеет первичный ключ "rollID", а RollTotals имеет составной ключ для "rollID" и "category".
Итак, в Grails у меня есть:
class Roll {
Integer id
...
static hasMany = [ rollTotals: RollTotal ]
static mapping = {
table('rolls')
id(column:'rollID')
version false
...
}
}
и
class RollTotal implements Serializable {
Integer rollId
Integer category
...
static belongsTo = [ Roll ]
static mapping = {
table('rolltotals')
id composite:['rollId', 'category']
version false
rollId(column:'rollID')
category(column:'category')
...
}
Эти сопоставления работают по отдельности, но когда я ставлю hasMany, он говорит:
Отсутствует таблица: rolls_rolltotals
Итак, я решил, что нужно знать, какой столбец использовать в качестве внешнего ключа, и добавил в Roll:
static mappedBy = [rollTotals: "rollId" ]
Там написано:
org.codehaus.groovy.grails.exceptions.GrailsDomainException: несуществующее свойство отображения [rollId], указанное для свойства [rollTotals] в классе [класс Roll]
Я пытался использовать rollID (как имя столбца), но получил тот же результат.
Есть идеи, как связать эти таблицы?