首页 > 解决方案 > 存储库从 PostgreSQL 数据库返回空列表

问题描述

我的 Spring Boot 应用程序连接到 PostgreSQL 数据库,但它没有创建我作为实体实现的表。这就是我自己用测试数据设置表格的原因。

当我使用 dataRepository.findAll() 访问数据时,它返回一个空列表。

据我了解,我认为它连接到我的数据库,因为我没有收到任何错误,但看起来模式无法正常工作。

我很确定这是一个“配置”问题,但我无法弄清楚它是什么。

PS:我有另一个项目具有完全相同的设置和代码(只是同一服务器上的另一个数据库),它工作得很好。

我的 gradle.build 文件:

plugins {
    id 'org.springframework.boot' version '2.1.6.RELEASE'
    id 'java'
}

apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'

group = 'de.dari'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '8'

repositories {
    mavenCentral()
    maven { url "http://htmlunit.sourceforge.net" }
}

dependencies {

    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    //implementation 'org.springframework.boot:spring-boot-starter-data-rest'
    compile("net.sourceforge.htmlunit:htmlunit:2.35.0")
    compileOnly 'org.projectlombok:lombok:1.18.8'
    annotationProcessor 'org.projectlombok:lombok:1.18.8'
    runtimeOnly 'org.postgresql:postgresql'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'

}

我的 application.properties 文件:

spring.datasource.url=jdbc:postgresql://webaddress.com:5432/b-one
spring.datasource.username=username
spring.datasource.password=secretPassword
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true

示例实体:

@Entity
public class Data {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @NotNull
    private String value;

    /*
     * Blank Constructor + Getters and Setters down here
     */
}

简单的 CRUD 存储库:

public interface DataRepository extends CrudRepository<Data, Long> {

}

控制器:

@Autowired
DataRepository dataRepository;

@GetMapping("/test")
public String test() {
    return dataRepository.findAll().toString();
}

是的,所以我没有收到任何错误消息,并且日志对我没有帮助,但也许您想了解一下它们。

控制台输出:

  . ____ _ __ _ _
 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_||)))))
  ' |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|===============|___/=/_/_/_/
 :: Spring Boot :: (v2.1.6.RELEASE)

2019-08-26 16:23:53.225 INFO 10220 --- [main] de.dari.bone.REST.Application:在具有 PID 10220 的 GamingPC 上启动应用程序(由 Deniz Cuhadari 在 C:\Users\Deniz Cuhadari\OneDrive 中启动- 公司\项目\b-one\b-one.REST)
2019-08-26 16:23:53.230 INFO 10220 --- [main] de.dari.bone.REST.Application:未设置活动配置文件,回退到默认配置文件:默认
2019-08-26 16:23:54.083 INFO 10220 --- [main] .sdrcRepositoryConfigurationDelegate:在默认模式下引导 Spring Data 存储库。
2019-08-26 16:23:54.202 INFO 10220 --- [main] .sdrcRepositoryConfigurationDelegate:在 110 毫秒内完成 Spring 数据存储库扫描。找到 6 个存储库接口。
2019-08-26 16:23:54.568 INFO 10220 --- [main] trationDelegate$BeanPostProcessorChecker:[org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$ 类型的 Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' $24d7df9e] 不符合被所有 BeanPostProcessor 处理的条件(例如:不符合自动代理的条件)
2019-08-26 16:23:54.878 INFO 10220 --- [main] osbwembedded.tomcat.TomcatWebServer:Tomcat 使用端口初始化:8080 (http)
2019-08-26 16:23:54.907 INFO 10220 --- [main] o.apache.catalina.core.StandardService:启动服务 [Tomcat]
2019-08-26 16:23:54.908 INFO 10220 --- [main] org.apache.catalina.core.StandardEngine:启动 Servlet 引擎:[Apache Tomcat/9.0.21]
2019-08-26 16:23:55.057 INFO 10220 --- [main] oaccC[Tomcat].[localhost].[/]:初始化 Spring 嵌入式 WebApplicationContext
2019-08-26 16:23:55.057 INFO 10220 --- [main] osweb.context.ContextLoader:Root WebApplicationContext:初始化在 1757 毫秒内完成
2019-08-26 16:23:55.226 INFO 10220 --- [主要] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - 开始...
2019-08-26 16:23:55.650 INFO 10220 --- [main] com.zaxxer.hikari.HikariDataSource:HikariPool-1 - 启动完成。
2019-08-26 16:23:55.711 INFO 10220 --- [main] o.hibernate.jpa.internal.util.LogHelper:HHH000204:处理 PersistenceUnitInfo [
    名称:默认
    ...]
2019-08-26 16:23:55.793 INFO 10220 --- [main] org.hibernate.Version : HHH000412: Hibernate Core {5.3.10.Final}
2019-08-26 16:23:55.795 INFO 10220 --- [main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties 未找到
2019-08-26 16:23:55.947 INFO 10220 --- [main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2019-08-26 16:23:56.098 INFO 10220 --- [main] org.hibernate.dialect.Dialect:HHH000400:使用方言:org.hibernate.dialect.PostgreSQLDialect
2019-08-26 16:24:02.271 INFO 10220 --- [main] ohejeiLobCreatorBuilderImpl:HHH000421:禁用上下文 LOB 创建为 hibernate.jdbc.lob.non_contextual_creation 为 true
2019-08-26 16:24:02.278 INFO 10220 --- [main] org.hibernate.type.BasicTypeRegistry:HHH000270:类型注册 [java.util.UUID] 覆盖以前:org.hibernate.type.UUIDBinaryType@7e49ded
2019-08-26 16:24:03.329 INFO 10220 --- [main] j.LocalContainerEntityManagerFactoryBean:为持久性单元“默认”初始化 JPA EntityManagerFactory
2019-08-26 16:24:03.946 INFO 10220 --- [main] ossconcurrent.ThreadPoolTask​​Executor:初始化 ExecutorService 'applicationTaskExecutor'
2019-08-26 16:24:03.987 WARN 10220 --- [main] aWebConfiguration$JpaWebMvcConfiguration:spring.jpa.open-in-view 默认启用。因此,可以在视图渲染期间执行数据库查询。显式配置 spring.jpa.open-in-view 以禁用此警告
2019-08-26 16:24:04.051 INFO 10220 --- [main] osbawsWelcomePageHandlerMapping:添加欢迎页面:类路径资源 [static/index.html]
2019-08-26 16:24:04.162 INFO 10220 --- [main] osbwembedded.tomcat.TomcatWebServer:Tomcat 在端口上启动:8080 (http),上下文路径为“”
2019-08-26 16:24:04.165 INFO 10220 --- [main] de.dari.bone.REST.Application:在 11.503 秒内启动应用程序(JVM 运行时间为 12.75)
2019-08-26 16:24:09.762 INFO 10220 --- [nio-8080-exec-1] oaccC[Tomcat].[localhost].[/]:初始化 Spring DispatcherServlet 'dispatcherServlet'
2019-08-26 16:24:09.762 INFO 10220 --- [nio-8080-exec-1] osweb.servlet.DispatcherServlet:初始化 Servlet 'dispatcherServlet'
2019-08-26 16:24:09.769 INFO 10220 --- [nio-8080-exec-1] osweb.servlet.DispatcherServlet:在 7 毫秒内完成初始化
2019-08-26 16:24:09.905 INFO 10220 --- [nio-8080-exec-1] ohhiQueryTranslatorFactoryInitiator : HHH000397: 使用 ASTQueryTranslatorFactory

标签: javaspringhibernatespring-boot

解决方案


推荐阅读