问题标签 [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.

0 投票
3 回答
11830 浏览

spring - 如何使用 Spring JPA Repository 区分计数

如何使用 Spring Data JPA 进行不同的计数?我不想使用@Query注释。等效的 sql 查询将是:

我尝试编写以下查询,但它不起作用:

0 投票
2 回答
3481 浏览

spring-boot - Spring Data JPA Redis:无法编写基于自定义方法的查询

我已经使用 Redis 配置了 Spring Data JPA 并使用了诸如等RedisRepositories提供的方法。所有这些方法似乎都工作得很好,但我无法编写我的自定义方法。find()findAll()

RedisEntity findByGenderAndGrade(字符串性别,字符串等级);

RedisEntity 是一个简单的 POJO 实体类。如果您想了解更多信息,请在消息中告诉我。

以下是我的实体:

存储库:

服务/控制器:

此外,findByGender 和 findAllByGender 都给出 [],尽管我可以在我的 redis 数据库中看到数据并保存它。

应 FrançoisDupire 的要求,

另外,我参考了这篇文章:Baeldung article on Spring data redis

0 投票
1 回答
162 浏览

java - 双向 OneToOne 映射的 N+1 休眠问题

我使用 JPARepository 和 hibernate 来表示我的数据库。我有几个实体,我的两个实体有一个双向 OneToOne 映射。每当我对双向关系的子类(或父类以获取子类)运行查询时,我都会遇到 N+1 休眠问题。

我的父实体:

儿童班

然后我有我的 DAO 类来创建查询。我使用了@Query 注释

在 DAO 中执行查询在日志中显示以下内容

我已经研究过使用注释@Fetch(FetchMode.JOIN)和所有那些快速解决谷歌可用解决方案的方法——但似乎无法解决这个问题。

任何帮助都感激不尽。

0 投票
1 回答
44 浏览

java - 在 SpringBoot 中正确获取 Controller 设置

当我尝试显示指定用户的假期时。我有

我在有这个方法的地方创建了 VacationController

在我的服务中,这个方法回答了 Repository,它有:

根据我在互联网上的研究,我已经正确编码,但它不起作用。我究竟做错了什么?

0 投票
2 回答
2383 浏览

spring-boot - Spring Boot:单元测试存储库方法的最佳策略是什么?

我们有很多带有连接和提取的方法,如下所示:

我想用测试覆盖这些方法,看看我们的 HQL 查询是否返回了预期的结果。

问题是我怎样才能轻松地填充我的本地数据库来测试我们方法的结果?

  • 一种明显的方法是使用代码在测试设置中创建实体。但是恐怕这个测试的可读性会很低。
  • 我想到的另一个想法是从我们的测试平台转储一个数据库,用它来设置测试,然后只运行查询来检查结果。

你能想到别的吗?我如何编写一个易于团队遵循的可维护测试套件?

编辑:

0 投票
1 回答
3280 浏览

java - Jpa 存储库找到所有类型为 HashSet

在我的 Spring Boot 应用程序中,我有两个实体用户和权限。ROLE_USER、ROLE_ADMIN 和 ROLE_SYSTEM 三个参数可以作为权限分配给用户,一个用户可以拥有多个权限。在用户实体中,我创建了连接用户和权限的连接列,因此我可以使用连接表为用户分配多个权限,实体字段如下所示:

因此,使用该字段 hibernate 创建了第三个具有用户 ID 和权限角色的表。在 Repository 中,我使用了 Hibernate JPARepository。并使用 findAll() 我得到了所有用户。控制器:

在控制器中:

服务中:

在存储库中:

我在存储库中尝试过这个:

权威机构:

所以,现在我必须将查询从 findAll 更改为 findAllByAuthorities(Pageable pageable, set authority)。但这不起作用,显示类型转换错误。如何获取角色为 ROLE_USER 的所有用户?

0 投票
2 回答
84 浏览

java - 在 Spring Data Repositories 之上使用 EntityManager

最近,我遇到了以下一段代码:

其中实体管理器定义如下:

和存储库是 Spring QueryDSL 存储库:

entityManager.merge(entity)我的问题是,当我们使用myEntityRepository右边的实体持久化实体时,是否真的有必要调用?entityManager 是否正在做一些存储库不能做的事情?调用存储库还不够吗?

0 投票
3 回答
80 浏览

sql - 如何在 Croud Repository 中查找特定列不同的最后 10 个实体?

我正在 Spring Boot 2 和 Croud Repository 上开发后端应用程序。

我有一个名为 MoneyTransfer 的表,表中有名为 customerId 和firmId 的列。

我需要获得客户转账的最后 10 家不同的公司。

目前,我让用户获得所有汇款并对其进行过滤。但是,这种方法没有意义,因为我让数据库中的所有元素都找到最后 10 个。它可能会导致性能问题。

您是否有任何有效的解决方案让我在不获取所有数据库行的情况下获得最后 10 个不同的公司 ID?

0 投票
1 回答
8931 浏览

java - jdbc4.MySQLSyntaxErrorException:您的 SQL 语法错误;检查手册 MySQL 服务器版本以在第 1 行的 ') )' 附近使用正确的语法

尝试使用 crudRepository 获取数据时遇到问题。我正在使用本机查询从数据库中获取记录数,但出现以下错误。

我在存储库中的查询是:

我不知道如何解决这个问题。我正在使用 Mysql 数据库。

show-sql 设置已打开。但我得到的是:

0 投票
1 回答
1785 浏览

spring-boot - Spring Boot - 创建泛型存储库

我的 Web 应用程序中有许多服务执行经典的 CRUD 操作,这些是参数部分。为了避免为每个实体类创建一个存储库接口,我想创建一个通用存储库。我尝试了下面的代码,但只有在我有一个控制器时才有效。