Как исправить ошибку «Ошибка создания компонента с именем entityManagerFactory, определенным в ресурсе пути к классу» - PullRequest
0 голосов
/ 16 февраля 2019

Я только учусь Spring, и у меня есть проблема в отношениях баз данных, закончившаяся ошибкой:

"org.springframework.beans.factory.BeanCreationException: Ошибка создания бина с именем entityManagerFactory'определено в ресурсе пути к классу [org / springframework / boot / autoconfigure / orm / jpa / HibernateJpaConfiguration.class]: сбой вызова метода init; исключение вложенного файла - org.hibernate.AnnotationException: неизвестный mappedBy в: 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;



1 Ответ

0 голосов
/ 16 февраля 2019

Атрибут mappedBy в отношении @OneToOne должен соответствовать имени атрибута в целевом объекте.

Таким образом, это должен быть «псевдоним», а не «пользователь»

@OneToOne(mappedBy = "nickname",fetch = FetchType.LAZY,cascade = {})
private UserPropertiesEntity userPropertiesEntity;
...