在我的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
>这是什么错误?如何解决?
答案 0 :(得分:1)
这是因为mappedBy
必须具有一个值,该值是包含这些实体之间的映射的字段的名称。
在您的示例中,该名称应为mappedBy = "loginCredential"
,因为包含@OneToOne
的{{1}}注释了mappedBy
。另一方面,User
使用User
字段上的@JoinColumn(name = "userID",referencedColumnName = "userID")
定义了这些实体之间的映射,因此定义了loginCredential
的值。