java - Hibernate + MySQL + JPA

标签 java mysql hibernate jpa

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/

相关文章:

java - 当经过身份验证的用户访问未 protected 页面时,getRemoteUser() 返回 null

PHP + mySQL 和并发数据库访问问题

MySQL 地理空间函数来识别矩形是否在非均匀的四边形多边形中有点,反之亦然

java - 如何使用 Hibernate Projection 检索复杂类及其成员?

java - 使用 MediaPlayer 时发生 FileNotFoundException

java - CN1 : Scrolling not working on MultiButton

java - 如何改进代码设计以消除 Java 中对 'instanceof' 的需要?

php - 两个php文件调用一个php并执行不同的功能

java - org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException...为什么?

java - 如何在 hibernate 中延迟加载多对多集合?