java - 如何将一对一的基本元素加入到实体中?

标签 java entity-framework jpa

我有 2 张 table 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 个密码。

最佳答案

你可以尝试这样的事情

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

关于java - 如何将一对一的基本元素加入到实体中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28236425/

相关文章:

java - 从内部类访问扩展类的方法

java - Selenium ChromeDriver 加载扩展路径问题

asp.net - Asp.Net Mvc 中动态数据的替代方案

entity-framework - 数据库中的 EF 6.1 Code First 不显示存储过程

java - 在 JavaFX 中单击按钮时更改文本框中的文本

java - 散列密码和加盐密码并不总是相同的

c# - 如何使用 mvc4 C# 在我的 linq 中将多个表包含到实体急切加载中

java - 使用 JPA 覆盖 @MappedSuperclass 中定义的 @Id

java - getSingleResult 返回 hibernate 中 native 标量查询的代理

mysql - 如何使用 JPA 和 Hibernate 仅更新实体的几个字段?