Spring Boot - 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:未知 mappedBy in:com.mua.cse616.Model.LoginCredential.user,引用属性未知:com.mua.cse616.Model.User.user


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


jeck猫
浏览 130回答 1
1回答

守候你守候我

这是因为mappedBy必须有一个值,该值是包含这些实体之间映射的字段的名称。在您的示例中,这应该是mappedBy = "loginCredential",因为@OneToOne包含mappedBy注释User。User另一方面使用@JoinColumn(name = "userID",referencedColumnName = "userID")overloginCredential字段定义那些实体之间的映射,因此 的值mappedBy。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java