Я застрял на этом уже целый день! Я только начинаю с Grails/Groovy.Как вставить запись с помощью многозначного внешнего ключа с grails?
У меня есть два класса домена с простым внешним ключом «один на один». Упрощенный немного, они «Компания»
class Company {
String name
String city
String state
String ticker
static constraints = {
name(unique:true, maxSize:40)
state(blank:true, maxSize:2)
city(blank:true, maxSize:40)
ticker(blank:true, maxSize:8)
}
}
и подписывающего (которые могут принадлежать к компании)
class Signer {
String firstName
String lastName
String city
String state
String zip
String email
Company company
static constraints = {
firstName(maxSize:40, blank:false)
lastName(maxSize:40, blank:false)
city(maxSize:40, blank:false)
state(maxSize:2, blank:false)
zip(maxSize:5, blank:false)
email(maxSize:50, unique:true, email:true, blank:false)
company(nullable:true)
}
}
Вот проблема:
Я не могу понять, как вставить новую запись в «Signer» и получить поле компании, которое будет содержать стоимость company_id.
mysql> select * from signer;
+----+---------+-----------+------------+----------------------+------------+-----------+-------+-------+
| id | version | city | company_id | email | first_name | last_name | state | zip |
+----+---------+-----------+------------+----------------------+------------+-----------+-------+-------+
| 1 | 0 | Sunnyvale | NULL | [email protected] | Robert | Swirsky | CA | 94087 |
| 2 | 0 | Sunnyvale | NULL | [email protected] | Robert | Swirsky | CA | 11111 |
| 3 | 0 | Sunnyvale | NULL | [email protected] | Robert | Swirsky | CA | 11111 |
Я попытался следующие:
def s = new Signer(params)
s.save()
где PARAMS содержит:
company_id набор на # существующей записи компании
компании набор для номер существующей записи компании - экземпляр
Компания предметная область задается с = Company.get (ид) // где идентификатор является # действительного компании params.company = с
Я также попытался это с
params.company_id = c
Ни одна из этих работ не работает! Когда я смотрю на таблицу в mysql, столбец company_id всегда равен нулю.
Как я могу заставить это работать? Hibernate пытается быть «слишком умным» здесь! Я просто хочу записать номер записи в company_id!
Вот и все! благодаря – 2009-08-10 13:59:07