2016-11-28 6 views
0

最初は、私はこの物語の王であることを知らせたいと思います。 私の春のMVCアプリケーション用の適切なSQLテーブルの作成に問題があります。データベースを管理するために、私はHibernateを使用しています。私のアプリケーションは2つのタイプのユーザーを持っています: *プライマリ - 名前、姓、電子メール、 *セカンダリ - "セカンダリ"に属している同じ属性と追加のものを持っているので "プライマリ"に拡張する必要がありますHibernateを使用してテーブルを作成する

ユーザー


@Entity 
    @Table(name = "users", catalog = "findbabysister") 
    public class User { 

     @Id 
     @Column(name = "username", unique=true, 
     nullable = false, length = 45) 
     private String email; 

     @Column(name = "password") 
     private String password; 

     private String passwordConfirm; 

     @Column(name = "enabled") 
     private boolean enabled = true; 

     @Column(name = "firstName") 
     private String firstName; 

     @Column(name = "lastName") 
     private String lastName; 

     @Column(name = "sex") 
     private boolean sex; 

     @Column(name = "zipCode") 
     private String zipCode; 

     private Set<UserRole> userRole = new HashSet<UserRole>(0); 
} 

とUserNanny

:これまでのところ私は、ユーザーが持つ2つのモデルを作成します
@Entity 
@Table(name = "usersGuardian", catalog = "findbabysister") 
public class UserNanny extends User{ 

    @Column(name = "typOfJob") 
    private String typOfJob; 
    @Column(name = "whatUwannaDo") 
    private String whatUwannaDo; 

    public String getTypOfJob() { 
     return typOfJob; 
    } 
    public void setTypOfJob(String typOfJob) { 
     this.typOfJob = typOfJob; 
    } 
    public String getWhatUwannaDo() { 
     return whatUwannaDo; 
    } 
    public void setWhatUwannaDo(String whatUwannaDo) { 
     this.whatUwannaDo = whatUwannaDo; 
    } 
} 

ここで、テーブルを正しく作成する方法がわかりました。私はシングルテーブル戦略を使用できることを知っていますが、これは専門的なアプローチではありません。

"ユーザー": *メールPkの *ユーザ名 *パスワード *ファーストネーム *姓 *セックス *郵便番号

"UsersGuardian": *メール私の考えでは、このような2つのテーブルを作成していましたPK *ユーザ名 *パスワード *ファーストネーム *姓 *セックス *郵便番号 * typeOfJob * whatUWannaDo

私の場合、それが良い解決策であるかどうかを私にお知らせください。任意の情報を事前に

感謝:)

+0

FYIは、JBoss Hibernateのツール(Eclipseプラグイン)を使用して、我々は、エンジニアがデータベーススキーマからPOJOを休止逆にすることができます。あなたは本当にそれを自分で作成する必要はありません –

答えて

0

Hibernateはこのようなシナリオを解決するための様々な方法を提供します。あなたの要件に基づいて、単一のテーブルまたは複数のテーブルを持つことができます。次のページを読むことをお勧めします。これは継承マッピングについて説明しており、実装する必要があります。

http://docs.jboss.org/hibernate/orm/3.5/reference/en/html/inheritance.html

関連する問題