{one-to-one}Tableの表現には2種類あります。
<A>
PrimaryKeyが同じ値<B>
ChildのParentへのFK-にUnique制約を付ける
「A」に関しては、DBFluteのSampleDB「LDB」の
「蔵書」・「蔵書ステータス」がまさにそれです。「B」に関しては、DBFluteのSampleDB「LDB」の
「図書館利用者」・「ブラックリスト」がまさにそれです。
どちらもDBFluteは{one-to-one}であることを感知し、
「FKの参照的にはChildだけれどもまるでParentかのように」
振舞うことが可能です。# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<A>
final CollectionCB cb = new CollectionCB();
cb.setupSelect_CollectionStatusAsOne(); // COLLECTION left outer join COLLECTION_STATUS
...
final Collection entity = selectEntity(cb);
entity.getCollectionStatusAsOne();
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<B>
final LbUserCB cb = new LbUserCB();
cb.setupSelect_BlackListAsOne(); // LB_USER left outer join BLACK_LIST
...
final LbUser entity = selectEntity(cb);
entity.getBlackListAsOne();
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -「A」に関しては何も問題ないと思いますが、
「B」に関してはUnique制約を付けていなければなりません。
付いていない場合はDBAに頼んで付けて貰いましょう。
DBFluteはUnique制約大歓迎です。