我正在使用SpringMVC + Hibernate,我正面临一个我难以解决的问题。 情况如下:
我有这个实体:
@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;
//....
}
这一个:
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”,“identifyiant”,“email”等...
我的问题是,如何在“T_inscription”表中保存“Identite”和“ParamConnexion”类的属性?
我不想为每个类创建一个表。有没有办法做到这一点 ?
我尝试了,我得到了这个例外:Unknown column 'identite' in 'field list'
这是正常的,因为我的表中没有这个字段,我不想创建它,我只想获得“Identite”的属性。
非常感谢。
答案 0 :(得分:0)
必须使用@Embeddable
注释两个非实体类。字段identite
和paramConnexion
必须使用Embedded
注释。有关详细信息,请参阅这两个注释的javadoc。