2
をコンパイルすることはできません(「ユーザー」)を使用してマジック[ユーザー]を()拡張:対象ユーザーは、私は、ユーザーのケースクラスに別のテーブル名を使用したいAnormを使用する場合は
object User extends Magic[User]().using("users")
しかし、私は取得しますコンパイルエラー:
ファイル/app/models/User.scalaをコンパイルできませんでした。エラーが発生しました: ';'期待されていたが。見つかりました。
対象ユーザーは、MagicUser↓.using( "ユーザー")を拡張
これはAnormのバグですか?
恐らくplay scalaのドキュメントhttp://scala.playframework.org/documentation/scala-0.9.1/anorm#AddingsomeMagicTにエラーがあります。しかし、私のUserオブジェクトは、CaseクラスUserのコンパニオンオブジェクトでなければなりません。それ以外の場合は、lazy valユーザーはパッケージオブジェクトに入れなければなりませんか?それ以上の洗練されたソリューションはありますか? –
オブジェクトである必要がある場合は、コンストラクタまたは初期化コードを実行する必要があります。メソッドは新しいインスタンスを返すので、Magicは不変であるため、コンストラクタで完全に初期化される可能性があります。私はそれを見ました(https://github.com/playframework/play-scala/blob/master/src/play/db/anorm/Anorm.scala 227行)。実際、オプションでラップされたコンストラクタでtableNameが必要です。だからあなたはオブジェクトを行うことができますユーザー拡張Magic [User](Some( "users")) –
それは動作します!どうもありがとう! –