Spring Boot-H2数据库中的外键问题

时间:2019-08-28 14:20:20

标签: spring spring-boot jpa foreign-keys h2

在我的Spring Boot应用程序中,我有User类,例如:

public class User {
@Id @GeneratedValue Long userID;


@OneToOne(fetch = FetchType.LAZY,targetEntity = LoginCredential.class)
@JoinColumn(name = "userID",referencedColumnName = "userID")
private LoginCredential loginCredential;
}

还有另一个类LoginCreadential

public class LoginCredential {
@Id @GeneratedValue Long userID;

@OneToOne(mappedBy = "user", fetch = FetchType.LAZY)
User user;
}

在尝试添加这些关系之前,我的应用程序运行良好。现在它没有运行。它给了我很多错误,但是重要的部分在这里:

org.hibernate.AnnotationException:未知,映射于:com.mua.cse616.Model.LoginCredential.user,引用的属性未知:com.mua.cse616.Model.User.user

>

这是什么错误?如何解决?

1 个答案:

答案 0 :(得分:1)

这是因为mappedBy必须具有一个值,该值是包含这些实体之间的映射的字段的名称。

在您的示例中,该名称应为mappedBy = "loginCredential",因为包含@OneToOne的{​​{1}}注释了mappedBy。另一方面,User使用User字段上的@JoinColumn(name = "userID",referencedColumnName = "userID")定义了这些实体之间的映射,因此定义了loginCredential的值。