java - 存储库从 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.ThreadPoolTaskExecutor:初始化 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
解决方案
推荐阅读
- r - 避风港:read_dta 错误()“无法解析 /Users/folder/my_data.dta:无法分配内存。”
- spring - Solr 文档根据类型自定义映射
- android - Flutter Hero 动画在 ios 上的行为不同
- azure - Azure 认知搜索:搜索文档内容中的字符串 + 文档名称中的字符串
- python - 当线程已经在运行时,tkinter 中的多线程错误
- angular - 如何使用 Jasmine 使用 window.location.href.substring() 和 toPromise().then() 测试 Angular 9 服务的封面?
- ffmpeg - ffmpeg concat + scale2ref,降低帧率
- c++ - 为什么我们可以使用指针访问私有数据成员类,而不使用类中的其他成员的成员朋友函数?
- django - 无法在模板中插入表单:“WSGIRequest”对象没有属性“get”
- apt - 使用 dpkg 安装包后,APT-cache 策略返回错误版本