Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为依赖对象中的字段使用生成的值?_Java_Jpa_Persistence - Fatal编程技术网

Java 如何为依赖对象中的字段使用生成的值?

Java 如何为依赖对象中的字段使用生成的值?,java,jpa,persistence,Java,Jpa,Persistence,我正在使用JPA在数据库中存储我的对象。我有一个用户类,它有一个字段(一对一关系)和一个密码类。当一个新用户注册时,我希望为用户类生成的Id也是密码类的Id字段。你有什么想法吗?这是相关代码 @Entity @Table(name="users") public class User { @Id @GeneratedValue(strategy=SEQUENCE,generator="user_id_seq") @Column(name="user_id") pr

我正在使用JPA在数据库中存储我的对象。我有一个用户类,它有一个字段(一对一关系)和一个密码类。当一个新用户注册时,我希望为用户类生成的Id也是密码类的Id字段。你有什么想法吗?这是相关代码

@Entity
@Table(name="users")
public class User {
    @Id
    @GeneratedValue(strategy=SEQUENCE,generator="user_id_seq")
    @Column(name="user_id")
    private int id;

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

    @OneToOne(cascade=CascadeType.PERSIST)
    @JoinColumn(name="user_id")
    private Password password;
}


@Entity
@Table(name="passwords")
public class Password {
    @Id
  //@GeneratedValue ???
    @Column(name="user_id")
    int userId;

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

Password
直接引用其父用户
User
,并将该字段标记为您的id:

@Entity
@Table(name="passwords")
public class Password {
  @Id
  User user;
  // ...
}
或者,如果您仍然需要基本
userId
字段,请使用:

@Entity
@Table(name="passwords")
public class Password {
  @Id
  int userId;

  @MapsId
  @OneToOne
  @JoinColumn(name = "user_id")
  User user;
  // ...
}