[Seasar-user:9501] Re: [dbflute]同じテーブルへ複数の外部キーをもつときのビルドエラー
kubo
[E-MAIL ADDRESS DELETED]
2007年 7月 27日 (金) 12:44:40 JST
久保です。
> 1つのテーブルが同じテーブルへ複数の外部キーを
> もつときに、dbfluteが生成するbsentityのソースコードに
> 重複部分が現れ、ビルドが通りません。
> バージョンは0.5.3です。
DBFluteは、通常
1つのテーブルが同じテーブルへ複数の外部キーをもつ場合
互いのColumn名を識別子に入れて生成しますので、
重複してCompileErrorになることはありません。
BOOK
BOOK_ID (PK)
AAA_AUTHOR_ID (FK to AUTHOR)
BBB_AUTHOR_ID (FK to AUTHOR)
AUTHOR
AUTHOR_ID (PK)
↓↓↓
FKの識別子:
AuthorByAaa
AuthorByBbb
ですが、
>
> ALTER TABLE VisitReservation ADD CONSTRAINT
> AppliUser_VisitReservation_ModUserId
>
> FOREIGN KEY (AppliUserId)
>
> REFERENCES AppliUser(AppliUserId)
>
> go
>
>
>
> ALTER TABLE VisitReservation ADD CONSTRAINT
> AppliUser_VisitReservation_RegUserId
>
> FOREIGN KEY (AppliUserId)
>
> REFERENCES AppliUser(AppliUserId)
>
> go
こちらを見ると
FK制約名が ModUserId と RegUserId と別になっていますが、
実際にFKに利用している列が互いに同じ列を利用しています。
つまり、同じ内容のFKの制約が2つ存在することになります。
なのでこれは
FOREIGN KEY (ModUserId) REFERENCES AppliUser(AppliUserId)
FOREIGN KEY (RegUserId) REFERENCES AppliUser(AppliUserId)
の間違いではないのでしょうか?
Seasar-user メーリングリストの案内