我只是在学习spring,而在以错误结尾的数据库关系中存在问题:
“ org.springframework.beans.factory.BeanCreationException:在类路径资源[org / springframework / boot / autoconfigure / orm / jpa / HibernateJpaConfiguration.class]中创建名称为'entityManagerFactory'的bean时出错:调用init方法失败;嵌套异常是org.hibernate.AnnotationException:未知,映射于:Varqina.WebReptile.models.entity.UserEntity.userPropertiesEntity,引用的属性未知:Varqina.WebReptile.models.entity.UserPropertiesEntity.user”
UserProperies:
import lombok.Data;
import javax.persistence.*;
import java.time.LocalDateTime;
@Table(name = "user")
@Data
@Entity
public class UserEntity {
public enum AccountStatus{
ACTIVE, PREMIUM, NOT_ACTIVE;
}
@Id @GeneratedValue private Integer id;
private String nickname;
private String password;
private @Column(name = "creation_time") LocalDateTime creationTime;
@Enumerated(EnumType.STRING)
private AccountStatus status;
private String email;
@OneToOne(mappedBy = "user",fetch = FetchType.LAZY,cascade = {})
private UserPropertiesEntity userPropertiesEntity;
}
UserPropertiesEntity:
import lombok.Data;
import javax.persistence.*;
@Data
@Entity
@Table(name = "user_properties")
public class UserPropertiesEntity {
private @Id @GeneratedValue Integer id;
private String city;
private String nation;
private @Column(name = "birth_day") String birthDay;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private UserEntity nickname;
@OneToOne关系中的mappedBy属性必须与目标实体中的属性名称相对应。
因此它应该是“昵称”而不是“用户”
@OneToOne(mappedBy = "nickname",fetch = FetchType.LAZY,cascade = {})
private UserPropertiesEntity userPropertiesEntity;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句