最新解决Error creating bean with name ‘entityManagerFactory’ defined in class path resource[…]的问题
在使用spring data jpa时,
实体类如下:
package com.dg.jpa.demojpa.model;
import org.hibernate.annotations.Proxy;
import javax.persistence.*;
/**
* @author snowball
* @create 2020-10-12 11:22
*/
@Entity
@Table(name="ay_user")
public class AyUser {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private String id;
private String name;
private String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
然后运行Application就报错了:
Error creating bean with name ‘entityManagerFactory’ defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister
然后我就去网上找了各种办法,一开始有说加@id注解的,加上去还是报错
最后在一篇文章的评论区找到了方法:https://blog.csdn.net/weixin_40936211/article/details/91868492
下面是解决方法
就是在下面这块代码上面
@Entity
@Table(name="ay_user")
public class AyUser {
加一个这个
@Proxy(lazy = false)
变成
@Proxy(lazy = false)
@Entity
@Table(name="ay_user")
public class AyUser {
然后运行成功: