Java 正在获取hibernate.UnknownEntityTypeException:无法在应用程序启动时找到persister

Java 正在获取hibernate.UnknownEntityTypeException:无法在应用程序启动时找到persister,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我正在学习Hibernate JPA。我正试图从这段代码中运行JPA部件- 以下是所有代码和配置- 应用程序属性 spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.di

我正在学习Hibernate JPA。我正试图从这段代码中运行JPA部件-

以下是所有代码和配置-

应用程序属性

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
xml-我使用的是Spring2.1.11.RELEASE

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.in28minutes.database</groupId>
    <artifactId>database-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>database-demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.11.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>


</project>
PersonJpaRepository.java-使用org.springframework.transaction.annotation.Transactional

package com.example.sandeepan.jpa;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.stereotype.Repository;

import com.example.sandeepan.entity.Person;
import org.springframework.transaction.annotation.Transactional;

@Repository
@Transactional
public class PersonJpaRepository {

    //connect to the database
    @PersistenceContext
    EntityManager entityManager;

    public Person findById(int id) {
        return entityManager.find(Person.class, id);//JPA
    }
}
Person.java

package com.example.sandeepan.entity;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Person {

    @Id
    @GeneratedValue
    private int id;

    private String name;
    private String location;
    private Date birthDate;

    public Person() {

    }

    public Person(int id, String name, String location, Date birthDate) {
        super();
        this.id = id;
        this.name = name;
        this.location = location;
        this.birthDate = birthDate;
    }

    public Person(String name, String location, Date birthDate) {
        super();
        this.name = name;
        this.location = location;
        this.birthDate = birthDate;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public Date getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
    }

    @Override
    public String toString() {
        return String.format("\nPerson [id=%s, name=%s, location=%s, birthDate=%s]", id, name, location, birthDate);
    }



}
精确误差跟踪-

2019-12-21 22:17:41.939  INFO 24739 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2019-12-21 22:17:41.943  INFO 24739 --- [           main] c.e.sandeepan.demo.JpaDemoApplication    : Started JpaDemoApplication in 3.822 seconds (JVM running for 4.244)
2019-12-21 22:17:42.042  INFO 24739 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-12-21 22:17:42.050 ERROR 24739 --- [           main] o.s.boot.SpringApplication               : Application run failed

java.lang.IllegalStateException: Failed to execute CommandLineRunner
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784) [spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
    at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:765) [spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:319) [spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1204) [spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
    at com.example.sandeepan.demo.JpaDemoApplication.main(JpaDemoApplication.java:25) [classes/:na]
Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Unable to locate persister: com.example.sandeepan.entity.Person; nested exception is java.lang.IllegalArgumentException: Unable to locate persister: com.example.sandeepan.entity.Person
    at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:374) ~[spring-orm-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:256) ~[spring-orm-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528) ~[spring-orm-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153) ~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.transaction.interceptor.TransactionInterceptor$$Lambda$463/921640293.proceedWithInvocation(Unknown Source) ~[na:na]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295) ~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689) ~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at com.example.sandeepan.jpa.PersonJpaRepository$$EnhancerBySpringCGLIB$$7da9173a.findById(<generated>) ~[classes/:na]
    at com.example.sandeepan.demo.JpaDemoApplication.run(JpaDemoApplication.java:31) [classes/:na]
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:781) [spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
    ... 5 common frames omitted
Caused by: java.lang.IllegalArgumentException: Unable to locate persister: com.example.sandeepan.entity.Person
    at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3531) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3474) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_20]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_20]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_20]
    at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_20]
    at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:310) ~[spring-orm-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at com.sun.proxy.$Proxy74.find(Unknown Source) ~[na:na]
    at com.example.sandeepan.jpa.PersonJpaRepository.findById(PersonJpaRepository.java:20) ~[classes/:na]
    at com.example.sandeepan.jpa.PersonJpaRepository$$FastClassBySpringCGLIB$$a023c4d7.invoke(<generated>) ~[classes/:na]
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:750) ~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139) ~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    ... 14 common frames omitted
Caused by: org.hibernate.UnknownEntityTypeException: Unable to locate persister: com.example.sandeepan.entity.Person
    at org.hibernate.metamodel.internal.MetamodelImpl.locateEntityPersister(MetamodelImpl.java:687) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl.locateEntityPersister(SessionImpl.java:3045) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl.access$1900(SessionImpl.java:208) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2796) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2782) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl.byId(SessionImpl.java:1230) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3499) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    ... 27 common frames omitted
2019-12-21 22:17:41.939信息24739---[main]o.s.b.w.embedded.tomcat.TomcatWebServer:tomcat在端口8080(http)上启动,上下文路径为“”
2019-12-21 22:17:41.943信息24739---[main]c.e.sandeepan.demo.JpaDemoApplication:在3.822秒内启动了JpaDemoApplication(JVM运行了4.244秒)
2019-12-21 22:17:42.042信息24739---[main]条件评估报告日志监听器:
启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。
2019-12-21 22:17:42.050错误24739---[main]o.s.boot.SpringApplication:应用程序运行失败
java.lang.IllegalStateException:未能执行CommandLineRunner
在org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784)[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
位于org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:765)[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
在org.springframework.boot.SpringApplication.run(SpringApplication.java:319)[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
在org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
在org.springframework.boot.SpringApplication.run(SpringApplication.java:1204)[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
在com.example.sandepan.demo.JpaDemoApplication.main(JpaDemoApplication.java:25)[classes/:na]
原因:org.springframework.dao.InvalidDataAccessApiUsageException:找不到persister:com.example.sandepan.entity.Person;嵌套异常为java.lang.IllegalArgumentException:无法找到persister:com.example.sandepan.entity.Person
在org.springframework.orm.jpa.EntityManagerFactoryUtils.ConvertJPAAccessException如果可能(EntityManagerFactoryUtils.java:374)~[spring-orm-5.1.12.RELEASE.jar:5.1.12.RELEASE]
在org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateException如果可能(HibernateJpaDialect.java:256)~[spring-orm-5.1.12.RELEASE.jar:5.1.12.RELEASE]
在org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.TranslateExceptionIfEnabled(AbstractEntityManagerFactoryBean.java:528)~[spring-orm-5.1.12.RELEASE.jar:5.1.12.RELEASE]
在org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfmable(ChainedPersistenceExceptionTranslator.java:61)~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
在org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
在org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:186)~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
在org.springframework.transaction.interceptor.TransactionInterceptor$$Lambda$463/921640293.proceedWithInvocation(未知源)~[na:na]
在org.springframework.transaction.interceptor.TransactionSpectSupport.invokeWithinTransaction(TransactionSpectSupport.java:295)~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
在org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
在org.springframework.aop.framework.ReflectiveMethodInvocation.procedue(ReflectiveMethodInvocation.java:186)~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
在org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
在com.example.sandepan.jpa.PersonJpaRepository$$EnhancerBySpringCGLIB$$7da9173a.findById()~[classes/:na]
在com.example.sandepan.demo.JpaDemoApplication.run(JpaDemoApplication.java:31)[classes/:na]
在org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:781)[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
... 省略了5个公共框架
原因:java.lang.IllegalArgumentException:找不到persister:com.example.sandepan.entity.Person
在org.hibernate.internal.SessionImpl.find(SessionImpl.java:3531)~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
在org.hibernate.internal.SessionImpl.find(SessionImpl.java:3474)~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:1.8.0\u 20]
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)~[na:1.8.0\u 20]
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)~[na:1.8.0\u 20]
在java.lang.reflect.Method.invoke(Method.java:483)~[na:1.8.0\u 20]
在org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:310)~[spring-orm-5.1.12.RELEASE.jar:5.1.12.RELEASE]
在com.sun.proxy.$Proxy74.find(未知源)~[na:na]
在com.example.sandepan.jpa.PersonJpaRepository.findById(PersonJpaRepository.java:20)~[classes/:na]
在com.example.sandepan.jpa.PersonJpaRepository$$FastClassBySpringCGLIB$$a023c4d7.invoke()~[classes/:na]
在org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)~[spring-core-5.1.12.RELEASE.jar:5.1.12.RELEASE]
2019-12-21 22:17:41.939  INFO 24739 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2019-12-21 22:17:41.943  INFO 24739 --- [           main] c.e.sandeepan.demo.JpaDemoApplication    : Started JpaDemoApplication in 3.822 seconds (JVM running for 4.244)
2019-12-21 22:17:42.042  INFO 24739 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-12-21 22:17:42.050 ERROR 24739 --- [           main] o.s.boot.SpringApplication               : Application run failed

java.lang.IllegalStateException: Failed to execute CommandLineRunner
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784) [spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
    at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:765) [spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:319) [spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1204) [spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
    at com.example.sandeepan.demo.JpaDemoApplication.main(JpaDemoApplication.java:25) [classes/:na]
Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Unable to locate persister: com.example.sandeepan.entity.Person; nested exception is java.lang.IllegalArgumentException: Unable to locate persister: com.example.sandeepan.entity.Person
    at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:374) ~[spring-orm-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:256) ~[spring-orm-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528) ~[spring-orm-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153) ~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.transaction.interceptor.TransactionInterceptor$$Lambda$463/921640293.proceedWithInvocation(Unknown Source) ~[na:na]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295) ~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689) ~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at com.example.sandeepan.jpa.PersonJpaRepository$$EnhancerBySpringCGLIB$$7da9173a.findById(<generated>) ~[classes/:na]
    at com.example.sandeepan.demo.JpaDemoApplication.run(JpaDemoApplication.java:31) [classes/:na]
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:781) [spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
    ... 5 common frames omitted
Caused by: java.lang.IllegalArgumentException: Unable to locate persister: com.example.sandeepan.entity.Person
    at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3531) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3474) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_20]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_20]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_20]
    at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_20]
    at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:310) ~[spring-orm-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at com.sun.proxy.$Proxy74.find(Unknown Source) ~[na:na]
    at com.example.sandeepan.jpa.PersonJpaRepository.findById(PersonJpaRepository.java:20) ~[classes/:na]
    at com.example.sandeepan.jpa.PersonJpaRepository$$FastClassBySpringCGLIB$$a023c4d7.invoke(<generated>) ~[classes/:na]
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:750) ~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139) ~[spring-tx-5.1.12.RELEASE.jar:5.1.12.RELEASE]
    ... 14 common frames omitted
Caused by: org.hibernate.UnknownEntityTypeException: Unable to locate persister: com.example.sandeepan.entity.Person
    at org.hibernate.metamodel.internal.MetamodelImpl.locateEntityPersister(MetamodelImpl.java:687) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl.locateEntityPersister(SessionImpl.java:3045) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl.access$1900(SessionImpl.java:208) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2796) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2782) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl.byId(SessionImpl.java:1230) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3499) ~[hibernate-core-5.3.14.Final.jar:5.3.14.Final]
    ... 27 common frames omitted