有人可以幫我弄清楚如何在grails中創建簡單的一對一映射的域類!Grails中的一對一映射
讓我們說我們有2個表(甲骨文):
create table table_a(long_common_id_name number(5) primary key using index,
notes varchar2(10 byte),
update_seq number(3)not null);
create table table_b (long_common_id_name number(5) primary key using index,
extra_notes varchar2(200 byte),
update_seq number(3) not null);
alter table table_b add (constraint table_b_fk foreign key (long_common_id_name)
references table_a (long_common_id_name));
我創建了兩個domain類:
class TableA {
static mapping = {
table 'table_a'
columns {
id column:'LONG_COMMON_ID_NAME'
data column:'NOTES'
version column:'UPDATE_SEQ'
}
}
String data
TableB extraData
}
class TableB {
static mapping = {
table 'table_b'
columns {
id column:'LONG_COMMON_ID_NAME'
data column:'EXTRA_NOTES'
version column:'UPDATE_SEQ'
}
}
String data
}
這種特殊的定義是不正確的。 Grails的(或休眠)建立了TableA的一個不正確的SQL:
select this_.LONG_COMMON_ID_NAME as LONG1_66_0_, this_.UPDATE_SEQ as UPDATE2_66_0_, this_.NOTES as NOTES66_0_, this_.extra_data_id as extra4_66_0_ from table_a this_
我試過很多東西:屬於關聯,hasManey具有獨特的,但似乎沒有任何工作。
在此先感謝。
這是一個我正在處理的遺留數據庫 我試過你以前的建議,它不起作用,下面是我得到的錯誤消息: 「實體映射中的重複列:TableA列: LONG_COMMON_ID_NAME(應該使用insert =「false」update =「false」進行映射)「 – mtim 2009-09-29 13:38:44
是否將映射行移動到'c olumns'有所作爲?根據1.1.1文檔,似乎並不需要。 您可能不得不退回到使用Hibenate xml映射類:http://grails.org/Hibernate+Integration – leebutts 2009-09-30 02:58:15
聲明「列」之外的映射列沒有任何區別,相同的「重複列」錯誤。 – mtim 2009-09-30 21:19:49