1
我有两个领域类。一个是“合作伙伴”,另一个是“客户”。客户可以成为合作伙伴的一部分,合作伙伴可以有1个或多个客户:Grails与joinTable的一对多映射
class Customer {
Integer id
String name
static hasOne = [partner:Partner]
static mapping = {
partner joinTable:[name:'PartnerMap',column:'partner_id',key:'customer_id']
}
}
class Partner {
Integer id
static hasMany = [customers:Customer]
static mapping = {
customers joinTable:[name:'PartnerMap',column:'customer_id',key:'partner_id']
}
}
但是,每当我尝试看看如果客户是合作伙伴的一部分,就像这样:
我得到以下错误:
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL [select this_.customer_id as customer1_162_0_, this_.company as company162_0_, this_.display_name as display3_162_0_, this_.parent_customer_id as parent4_162_0_, this_.partner_id as partner5_162_0_, this_.server_id as server6_162_0_, this_.status as status162_0_, this_.vertical_market as vertical8_162_0_ from Customer this_]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
看起来好像Grails是想PARTNER_ID是客户查询的一部分,它不...它是在PartnerMap表,这是应该找customer_id,t母鸡从相应的partner_id获取合作伙伴。
任何人有任何线索我做错了什么?
编辑:我忘了提及我正在做这与遗留数据库表。所以我有一个合作伙伴,客户和PartnerMap表。 PartnerMap只有一个customer_id和partner_id字段。
糟糕,我忘了提及,我正在做这与传统的数据库的东西...所以我必须使用预定义的表。我有一个客户,合作伙伴和PartnerMap表。 PartnerMap只是一个customer_id和partner_id字段。这是否限制了我? – intargc 2011-01-12 23:20:31