gpt4 book ai didi

java - Hibernate + MySQL + JPA

转载 作者:行者123 更新时间:2023-11-30 01:32:48 26 4
gpt4 key购买 nike

1) 我有 2 个表,user 和 user_profile 具有 OneToOne 关系,

用户表:

id,user_name,first_name,last_name - with ID has primary key,

用户个人资料:

id,name,user_id - with ID has primary key and user_id has foreign key with user table

2) 以下是两个 JPA Entity 对象

用户:

@Entity
@Table(name = "user")
public class User{

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@Column(name = "user_name",unique=true,nullable=false)
private String name;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;

@OneToOne(cascade = {CascadeType.ALL})
@JoinColumn(name="user_id")
public UserProfile userProfile;

//with set/get methods
}

用户个人资料:

@Entity
@Table(name = "user_profile")
public class UserProfile {

@Id
@Column(name = "id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "user_id")
private Long userId;

@OneToOne(mappedBy="userProfile")
private User user;

// with set/get methods
}

当我尝试插入两个表时,我看到 user_id 列已添加到 USER 表中并带有值,但我在 user_id 列中看不到任何值USER_PROFILE 表的。

我是 MySQL 新手,有人可以告诉我如何解决这个问题吗?

最佳答案

您的映射是向后的。 @JoinColumn 应该针对用户,而不是针对 userProfile。

关于java - Hibernate + MySQL + JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com