DBFlute-1.0.5H was released. (ごーえいちです、2W5Hのえいちです) DBFlute Top Change Log Migration Point オープンソースプロダクト「DBFlute」 のリリース通知です。 (プログラマー向けの内容です)
ちょっとしたバグフィックスということで、静かなリリースです。 AdditionalForeignKeyで設定する、 業務的one-to-oneの固定条件(fixedCondition)の中で、 ForeignテーブルのForeignテーブルに対する OverRelation ($$over(...)$$) を使った時、 そして、Foreignテーブル側の条件としてバインド変数を使った時 に、そのリレーションを使うと例外が発生してしまいました。 「ああぁ、なるほど」 とならない限りは重要ではありません。 ちょうどこの機能を利用しようとされたユーザーの方からの フィードバックで、バグフィックスのみでのリリースとしました。 A <-* B *-> C が one-to-many-one だとして、 C にとある条件を指定すると A -> B が業務的one-to-oneになると。 その C に対する条件をバインド変数にすると今回の現象が発生。 そもそも、そんな状況ってあるの? って思われるかもしれませんが、意外にあるものです。 ないと思ってても、SQLのjoin句でベタベタとみんなが その同じ結合条件を書いているかもしれません。 SQLのjoinのon句に別のテーブルのカラムを登場してたら要注意! DBFluteは、その "お決まり" のリレーションを再利用します。 そして、固定条件が変わったときにでも一箇所直せばOKに。 「あっ、当てはまる!」と思ったら、 ぜひ、使ってみてくださいね。 業務的one-to-one - OverRelation
map:{ ; localTableName = AA ; foreignTableName = BB ; localColumnName = AA_ID ; foreignColumnName = BB_ID ; fixedCondition = $$over($foreignTable.cc)$$.CC_CODE = /*ccCode(String)*/ ; fixedSuffix = AsBbCc }