我想在Wildfly上使用JPA和Spring。我尝试了这个配置:
application.properties:
spring.jmx.enabled=false
spring.datasource.jndi-name=java:/global/production
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.jpa.show-sql = true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDBDialect
spring.jpa.hibernate.ddl-auto = create-drop
字符串
POM文件:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath />
</parent>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-jaxb-annotations</artifactId>
<version>2.9.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
型
配置:
@Configuration
@ComponentScan("org.rest.api.server.*")
public class AppConfig {
@Bean
public EntityManager entityManager(EntityManagerFactory emf) {
return emf.createEntityManager();
}
}
型
但是当我尝试执行query时,我得到:
Caused by: org.hibernate.UnknownEntityTypeException: Unable to locate persister: org.rest.api.server.repository.Terminals
10:28:27,539 ERROR [stderr] (default task-1) at org.hibernate.metamodel.internal.MetamodelImpl.locateEntityPersister(MetamodelImpl.java:642)
型
什么是正确的方式来配置实体?可能我需要手动Map它?
5条答案
按热度按时间0s0u357o1#
当您的persistence.xml文件缺少您尝试使用的某些实体时,可能会发生此错误。
oknwwptz2#
Sping Boot 自动配置没有拾取实体,也没有创建或Map数据库表时会抛出此错误。为了解决此问题,您需要在Sping Boot 应用程序类中的
@SpringBootApplication
下面添加@EntityScan(basePackages = {"**entities_package_name"})
。字符串
3lxsmp7m3#
这是我如何配置一个entityManager。你传递的dataSource是配置中的另一个bean。你可以看看BasicDataSource。
字符串
mmvthczy4#
您可以使用@ martyScan()annotation让spring查找marty-classes。
联系我们
k75qkfdt5#
我得到了同样的错误。我做的错误是导入javax.persistence.Entity;
我们需要导入jakpersistence.Entity;而不是javax.persistence.Entity;这是因为JPA现在已更改为Jakarta Persistence API,不再是Java Persistence API。