【问题标题】:How to fix " Error creating bean with name 'entityManagerFactory' defined in class path resource"如何修复“在类路径资源中定义名称为 'entityManagerFactory' 的 bean 创建错误”
【发布时间】:2019-07-10 09:59:59
【问题描述】:

我刚学spring,数据库关系有问题,以error结尾:

"org.springframework.beans.factory.BeanCreationException: 错误 创建在类路径中定义的名称为“entityManagerFactory”的bean 资源 [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;



【问题讨论】:

    标签: java spring hibernate entity


    【解决方案1】:

    @OneToOne 关系中的 mappedBy 属性必须与目标 Entity 中的属性名称相对应。

    所以应该是“昵称”而不是“用户”

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

    【讨论】:

    • 太棒了。你能接受我的答案是正确的吗?谢谢
    • 是的。谢谢!
    猜你喜欢
    • 2015-10-16
    • 2014-03-09
    • 2016-02-17
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    相关资源
    最近更新 更多