Java 如何为依赖对象中的字段使用生成的值?
我正在使用JPA在数据库中存储我的对象。我有一个用户类,它有一个字段(一对一关系)和一个密码类。当一个新用户注册时,我希望为用户类生成的Id也是密码类的Id字段。你有什么想法吗?这是相关代码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
@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;
// ...
}