2016-07-07 6 views
0

私は永続化したい単純なPOSO GroupACLTemplateを持っています。これは、抽象クラスから継承されています。私は@Entityでそれを注釈を付け、さらにGroupACLTemplateモルフィアは私の@ID注釈付きフィールドを認識しません

@Entity("aclTemplate") 
@SerialVersionUID(1L) 
class GroupACLTemplate(@([email protected]) id: String, groupRoleAccess: Set[GroupRoleAccess]) extends AclTemplate(id) with Serializable 

私は戦争を展開@Id、私は見ておりません任意のコレクションを持っています。また、私はテストケースを追加しました。この

class GroupACLTemplate(@Id id: String, groupRoleAccess: Set[GroupRoleAccess]) extends AclTemplate(id) with Serializable 

を試してみましたが、この

@Inject 
var aclTemplateRepository: AclTemplateRepository = _ 
aclTemplateRepository.save(aclTemplate.head) 

のようなオブジェクトを保存しようとしたエラーが

NoId complained about com.java.sample.acl.GroupACLTemplate. : No field is annotated with @Id; but it is required 

が、私はここで何かをしないのですと言いますか?

答えて

0

修飾子を使用しない場合、コンストラクタparamsを宣言している間、Scalaはそれらを変数private finalにマップします。ただし、varが追加された場合は、private個の変数にマップされます。それが私の変更です。今、クラス宣言が

@Entity("aclTemplate") 
@SerialVersionUID(1L) 
class GroupACLTemplate(@([email protected]) var id: String, groupRoleAccess: Set[GroupRoleAccess]) extends AclTemplate(id) with Serializable 
0

githubに問題を提出した場合は、一見できます。 Morphiaはクラスファイルで動作するので、すべてが "うまくいく"はずですが、現在はスカラクラスに対してテストしていないので、スカラがどのようにコンパイルしてバイトコードにコンパイルしてマッパーを投げ捨てるのか不思議です。

+0

から1からIDを使用する必要があります – rockydgeekgod

+0

ありがとうございます。あなたのために何かをすぐに手に入れようとします。 – evanchooly

-1

のように見えますが(https://github.com/mongodb/morphia/issues/960)[完了] morphia代わりのばねデータ

関連する問題