10

Google で調査した結果、私の問題を抱えている人を見つけられなかったので、ここに投稿しています。私のアプリケーションには、User (abstract)、Customer、Agency の 3 つのエンティティがあります。顧客と代理店はユーザーを拡張します。User のコードは次のとおりです。

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class User extends AbstractModel {

    @Column(unique = true)
    @NotNull
    @Email
    public String email;

    @NotNull
    public String password;

}

問題は、生成されたスキーマが User、Customer、Agency のフィールドを持つ 1 つのテーブルのみを作成することです。これは通常、InheritanceType.SINGLE_TABLE (デフォルト) での動作です。

Ebean と @Inheritance アノテーションの使用に問題はありますか? InheritanceType.TABLE_PER_CLASS を試しましたが、うまくいきませんでした。JPAを使用してこの問題が発生したことはありません。誰でも助けることができますか?

どうもありがとう ;)

4

2 に答える 2

1

Customerとテーブルに電子メールとパスワードが必要な場合は、 /アノテーションAgencyを確認することもできます。@Embedded@Embeddable

@Embeddable
public class User  {

    @Column(unique = true)
    @NotNull
    @Email
    public String email;

    @NotNull
    public String password;

}

そして、Customerクラス(Agencyと同様):

@Entity
public class Customer  {

...

    @Embedded
    public User user;
...
}
于 2012-08-09T20:35:34.573 に答える