如何将一对一的基本元素加入实体?

时间:2015-01-30 12:56:03

标签: java entity-framework jpa

我有2个表useruser_password,我想加载User实体,以便在password表中输入时填充实体中的user_password字段存在。

表:

user
--------
id
name

user_password
--------
user_id
password

实体:

@Entity
public class User implements Serializable {

    @Id
    @GeneratedValue( strategy = IDENTITY )
    private Long id;

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

    // @ElementCollection
    @JoinTable( name = "user_password", 
                joinColumns = @JoinColumn( name = "user_id" ) )
    @Column( name = "password" )
    private String password;

}

当我使用@ElementCollection并将password字段从字符串更改为列表时,它会起作用,但user_id中的user_password列也是主键,这意味着永远不会超过1个密码。

1 个答案:

答案 0 :(得分:1)

你可以试试这样的事情

@Entity
@SecondaryTable(name="user_password",
                pkJoinColumns=@PrimaryKeyJoinColumn(name="user_id"))
public class User implements Serializable {
    ...
    @Column(table = "user_password", name = "password" )
    private String password;
    ...
}