问题标签 [spring-repositories]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - 如何在内存数据库中使用 H2 调试 Spring Boot 存储库?
我正在开发 Spring Boot 并尝试使用 H2 数据库(在内存中)进行单元测试。我的 Spring Data 存储库实现不起作用,我需要帮助来调试它。
我已将我的项目(不使用原始项目)简化为以下示例以隔离和演示问题。该项目可以在GitHub中找到。
Eclipse项目结构:
pom.xml:
应用程序属性:
主要配置类:
学生实体类:
StudentRepository 类:
StudentRepositoryTester 类:
数据.sql:
架构.sql:
我可以在控制台日志中看到 H2 已填充,因为我可以看到 data.sql 中的语句已执行。我在日志中没有看到任何可疑之处。
具体问题:
运行 StudentRepositoryTester 测试类,我看到(在断言语句上有断点)没有返回任何实体。我不明白为什么。也许我错过了 Spring Boot 配置注释中的某些内容?
我试图检查断点中的数据库内容,但我找不到探索 H2 数据库的方法。我按照本教程打开 H2 的 Web 浏览器应用程序,但在 localhost:8080 中没有提供任何服务。难道我做错了什么?或者,是否有另一种方法来调试 H2 数据库(在内存中)中发生的事情?
请注意,相应的 Eclipse 项目已上传到GitHub以方便讨论。
java - List.clear() 与参考重新分配性能
在我的代码中,我一直在使用存储库的findAll查询 10k 个项目的列表。
我只分配了一个List
引用,findAll
然后为 的项目运行一个循环List
。
数据库中的总记录通常是 10K 的几倍,即循环当前迭代 6 到 12 次之间的某处。
我观察到的是,在大约 20K 读取项目之后,该循环中的连续处理开始花费更多时间。
List.addAll()
如果我使用项目并且在添加下一个项目之前,我没有分配参考,而是使用然后迭代的执行时间保持不变并且不会连续增加findAll
来清除列表。List.clear()
迭代时间增加的代码,
恒定时间,
不知道为什么对象的间隙也应该在第一个实例中被垃圾收集?
java - 在 Spring @Query 注释中对 Oracle / PostgreSql 使用特定的本机查询
我有一种spring repository
方法native
这个查询是针对 Oracle 的,但我也有 PostgreSQL,我需要为 PostgreSQL 创建本机查询,当我使用 Postgres 配置文件启动我的 spring boot 服务器时,我需要使用这个查询。当我从 Oracle 配置文件开始时,我需要使用 Oracle 查询。
例如,我可以将查询字符串移动到配置文件:
但是如何将此字符串传递给@Query
注释?像这样的东西:
也许有正确的方法可以做到这一点?
spring - Spring data JPA + Native query - 根据配置文件替换查询字符串
我有服务:
这是我的存储库:
oracle profile
如果我用我调用findReadyToSendOracle
方法和 if postgre profile
-方法启动 spring boot 服务器findReadyToSendPostgre
。这行得通。但是这个解决方案很糟糕。我认为。因为我为配置文件检查编写硬代码。我的存储库有 2 种用于不同数据库的方法。
如何正确实施?
spring - 搜索方法中的 ResourceNotFoundException
我正在尝试在 Rest 中公开我用 Spring 编写的存储库
编译正常,没有警告。如果我理解得很好,下面的 url 应该返回我的自定义查询方法 http://127.0.0.1:8080/product/search/findByBizid?bizid=AB
但是我得到了一个空响应,并且在 Intellijidea 的 spring 控制台中引发并显示了一个 spring 异常:
WARN 39290 --- [nio-8080-exec-1] .mmaExceptionHandlerExceptionResolver:已解决由处理程序执行引起的异常:org.springframework.data.rest.webmvc.ResourceNotFoundException:找不到资源!
我花了整整一夜,我完全迷失了
我试图简化我的代码,复制粘贴一些教程示例,但没有任何效果。
我发现127.0.0.1:8080/product/search方法也不起作用。即使我正在删除我的海关方法。
知道如何调试吗?
安东尼
更新:我忘了告诉经典存储库列表运行良好:127.0.0.1:8080/product 正在检索数据库中的所有产品
angularjs - 具有 Spring Boot MongoDB 存储库的多个数据库动态
我需要修改我的 Spring-Boot 应用程序以动态管理 Mongo 驱动程序的动态实例。在我的应用程序中,Spring Boot MongoDB Repositories 已经配置好了,现在可以了。对于新要求,我们要实现 sass(动态租户),其中一个是主数据库,另一个是动态选择数据库。现在的问题是,当我们选择任何租户时,如何在应用程序中动态配置 spring Boot another MongoDB Repositories。例如:假设 5 个租户在应用程序内动态选择其中任何一个,另一个 DB 随机选择
hibernate - Spring JPA no @Transnational 保存 JpaRepository
默认情况下,用户定义的存储库方法是只读的,修改查询被 @Transactional 覆盖,来自 Spring 的 SimpleJpaRepository 的示例:
我注意到 JpaRepository 没有用 @Transactional 覆盖 save :
保存方法在里面CrudRepository
(这里没有跨国)
那么在没有@Transnational 示例的情况下扩展 JpaRepository 时保存方法的工作原理:
这里没有交易
java - 使用 Spring Boot 从数据库中检索列表
我有一个以findall_db
一个名为...的表命名的数据库person
我已经手动向该表添加了一些值,并希望使用 Spring Boot 检索它们。这就是我所拥有的,但我的控制器中不断出现此错误:Type mismatch: cannot convert from Iterable<PersonInfo> to List<PersonInfo>
实体类是:
存储库类是:
控制器是:
java - RepositoryRestExceptionHandler :对象不是托管实体
设想:
SpringBoot 执行器:
实体:
回购:
配置类。一个用于 Live,另一个用于开发/测试。
当 SpringBoot 应用程序正在执行时,我做了一个 curl 我得到了积极的回应:
通过 unix 终端发布:
回复:
通过 UNIX 终端获取:
回复:
测试用例:
现在,当我尝试使用 Jupiter 执行集成测试时,挑战就来了。我的测试因奇怪的堆栈跟踪而失败,这对我来说意义不大。错误信息:
意义不大。还有人知道那是什么意思吗?