goen v0.0.10について

以下の不具合を修正しました:

  • foreign_key:"col1,col2" のように、 foreign_key に複数カラムを指定したときに生成されるIncludeLoaderがうまく動かない

これは結構根が深い問題でした。 goenではIncludeLoaderの動作時に、ScopeCacheというものを引き渡すことで、IncludeLoaderによる参照エンティティのロードが無限ループに落ちないようにしています。 ScopeCacheでは、PKやFKに対しロード済みのエンティティをマッピングして保持します。 そしてScopeCacheに保持されたエンティティを、IncludeLoader側で引き出して使っています。

今回の不具合では、IncludeLoaderがScopeCacheからエンティティを取得するとき、期待通りにScopeCacheに保持されていないエンティティの処理をスキップしていたことが原因で、ScopeCache.GetObjectからエンティティが取得できないことがありました。 修正のために、ScopeCacheに非互換な修正を入れましたが、ScopeCacheは基本的にgoen内部で使っている用途がほとんどなので、影響はないだろう、という見込みです。

コード生成用のテンプレートを修正したため、goenの更新後にgo generateを実施する必要がありす。 ご注意ください。