私はScalaとSlickの両方にとって非常に新しく、それを学ぼうとして、私は簡単なデータベースで動作する小さなアプリケーションを書いています。Scala私のデータベースの滑らかで複雑なタイプ
私の以前の経験のほとんどは.NetとEntity Frameworkから来ているので、Slickが同じことをすることができるなら、ComplexType
属性を持つEntity Frameworkのようなものかどうか疑問に思っていました。
基本的に私のテーブルの1つは1-1の関係であり、そのうちのいくつかについては、オブジェクトを作成して複合タイプとして使用する方が好きです。明らかにデータベースではこれはテーブル上の余分な列ですが、Slickがそれらの列を私のTable
クラスのオブジェクトにマップできるかどうか疑問に思っていました。以下の例を参照してください。
ブログエントリの例を使用します。
テーブルを拡張する私のメインクラスはBlogEntry
であり、エントリのテキストを含んでいます。次に、そのクラスに、EntryDetails
という別のクラスがあり、エントリが投稿された時刻と最後に更新された時刻が含まれていたとします。
データベースでは、これらのフィールドはすべて同じテーブルにありますが、読み込み時には他のオブジェクトを含む1つのオブジェクトになります。これはSlickでも可能ですか?
はい、可能です。そのためにはカスタム[TypeMapper'を実装する必要があります(http://slick.typesafe.com/doc/1.0.1/lifted-embedding.html#user- defined-functions-and-types)。 (本当の答えは後で書きます) – Carsten
大変ありがとうございます。あなたがそうするとき、私は答えとしてそれを受け入れるでしょう。迅速な返信をありがとうございます。 – twreid
TypeMapperで問題を解決しましたか?それを行う方法のサンプルがまだ必要ですか? – dirceusemighini