Spring 引导中的外键问题 - h2 数据库

Foreign key problem in Spring Boot - h2 database

在我的 spring 启动应用程序中,我有 User class 像这样的东西:

public class User {
@Id @GeneratedValue Long userID;


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

还有一个 class LoginCreadential 像这样:

public class LoginCredential {
@Id @GeneratedValue Long userID;

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

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

org.hibernate.AnnotationException:未知 mappedBy 在:com.mua.cse616.Model.LoginCredential.user,引用 属性 未知:com.mua.cse616.Model.User.user

这里有什么错误?如何解决这个问题?

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

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

的值