У меня есть таблица таблиц «один ко многим», которую я хочу сделать с граалями. У меня есть устаревшая база данных, где я не могу изменить структуру таблицы. У меня все настроено, но единственное, что я не могу понять, это как заставить граалы замечать существующие внешние ключи вместо создания своего собственного столбца. У меня что-то вроде этого (упрощенно):
class Customer {
String listID
String name
String address
// more fields etc.
static hasMany [notes : Note]
static mapping = {
table name:"customers"
id name:"listID",generator:"assigned"
// doesn't work, creates a foreign key column in customer_notes table
// with key: customer_id. I want it to just use the existing column
// CustomerListID, which has the correct foreign key
notes joinTable:[name:"customer_notes",key:"CustomerListID"]
}
}
class Note {
String noteID
String customerListID
static mapping = {
table name:"customer_notes"
id name:"NoteID",generator:"assigned"
}
}
В качестве примечания, я вижу, что joinTable в документе grails говорит, что «столбец» - это обратный столбец, а «ключ» - это внешний ключ. Примеры в документах не помогают. У меня есть «Grails в действии», и он говорит, что собирается предоставить пример «один ко многим», затем показывает пример «многие ко многим», и в любом случае это не полный пример (половина модели отсутствует). !
Есть идеи? У меня есть эта устаревшая база данных, и я собираюсь использовать ее только для чтения. Я просто хочу, чтобы картограф O / R хорошо все связывал.