2016-12-06 6 views
0

私はSpringMVC + Hibernateを使用しています。私は解決するために苦労している問題に直面しています。 状況は以下の通りです:Hibernateを使用して他のエンティティによって作成されたエンティティを1つのテーブルに格納する方法は?

私は、このエンティティを持っている:

@Entity 
@Table(name = "T_inscription") 
public class T_inscription implements Serializable { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long   id_inscription; 

    @Valid 
    private Identite  identite; 

    @Valid 
    private ParamConnexion paramConnexion; 
//........ 
} 

このクラス:

public class Identite implements Serializable { 

    @Size(min = 2) 
    @NotBlank 
    @Pattern(regexp = "[\\p{L}\\p{Alpha} -]*") 
    @Column(name = "nom") 
    private String nom; 

    @Size(min = 2) 
    @NotBlank 
    @Pattern(regexp = "[\\p{L}\\p{Alpha} -]*") 
    @Column(name = "prenom") 
    private String prenom; 
//.... 
} 

そして、この1:

public class ParamConnexion implements Serializable { 

    @Pattern(regexp = "[\\p{L}\\p{Alnum}-_]*") 
    @Size(min = 2) 
    @Transient 
    private String     identifiant; 

    @Pattern(regexp = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\." 
     + "[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*" 
     + "@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?") 
    @Column(name = "email") 
    private String     email; 
//..... 
} 

マイテーブル "T_inscription" は含まれていこれらのフィールドは、 "id_inscription"、 "nom"、 "prenom"、 "identifiant"、 "email"などです。

私の質問は、 "T_inscription"テーブルの "Identite"と "ParamConnexion"クラスの属性を保存するにはどうすればよいですか?

私はクラスごとにテーブルを作成したくありません。これを行う方法はありますか?

私が試したと私は、このexeptionました:Unknown column 'identite' in 'field list'

私は私のテーブルでは、このフィールドを持っていないと私はそれを作成したくないので、それは普通のことですが、私はちょうど「Identite」のプロパティを取得したいが。

多くのありがとうございます。

答えて

0

2つの非エンティティクラスには、@Embeddableという注釈を付ける必要があります。フィールドidentiteparamConnexionにはEmbeddedの注釈を付ける必要があります。詳細については、これら2つの注釈のjavadocを参照してください。

+0

ありがとうございます。どこかの記述とともにすべての注釈のリストがありますか? – akuma8

+0

はい。 javadoc(https://docs.oracle.com/javaee/7/api/)にあります。仕様(http://download.oracle.com/otndocs/jcp/persistence-2_1-fr-eval-spec/index.html)を参照してください。 –

+0

私はすでにJSR338 pdfをダウンロードしたことに気付きましたが、私が必要としていたものを探す場所がわかりませんでした。私はフランス語であり、実際に英語をマスターしていないので、この種のデータシートで必要な情報を見つけることはかなり困難です。再度、感謝します。 – akuma8

関連する問題