java - 使用 spring data jpa 从数据库过滤和检索数据

标签 java reactjs spring-boot spring-data-jpa

我使用reactjs作为前端,使用spring boot作为后端。我正在使用 spring data jpa。

这是我的困境..我知道我编写逻辑的方式效率低下,并且想知道和理解解决该问题的更好方法。

假设数据库中有数千条记录,我需要不断地立即检索它们(如果可能的话)

我在 UI 中有 2 个字段。一个是 String,另一个是 Integer。

名称(字符串)SomeKindOfId(整数) -------------- -------------------

只有在“名称”字段和/或“SomeKindOfId”字段中输入 3 个字符后,我才必须过滤记录。

如何有效地实现这一目标?

目前,我有

findAllByNameAndSomeKindOfId("%"+name+"%","%"+String.valueOf(SomeKindOfId)+"%")

服务中

以及存储库类中类似的内容

Query("Select u from SomeTable u where u.name = :name and CAST(u.someKindOfId As string) like :someKindOfId")
List<CdoDimStPortfolio> findAllByEntityStatusAndDealName(@Param("name") String name,
        @Param("someKindOfId") String someKindOfId);

我使用强制转换的原因是因为我在数据库中有 someKindOfId 作为 int

最佳答案

进行高效数据库查询的最佳方法是根据您要搜索的值创建索引。

您可以创建索引“name”和“someKindOfId”,并且对这些值的搜索将立即进行,因为就像在书中一样,如果您逐页搜索章节,您将花费比直接搜索更长的时间索引并搜索它。

例如对于 postgresql:

https://www.postgresql.org/docs/9.1/sql-createindex.html

CREATE INDEX constructs an index on the specified column(s) of the specified table. Indexes are primarily used to enhance database performance

关于java - 使用 spring data jpa 从数据库过滤和检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55939729/

相关文章:

java - 从 servlet 生成 JSON

java - 这样做的正确方法是什么?初始化/符号未找到错误

reactjs - 跨项目重用 React 组件

java - 从 1.3.x 升级到 1.4.0 后,Spring boot ssl 配置损坏

java - ServiceImpl 中构造函数的参数 0 需要一个 DAO 类型的 bean,但无法找到

spring-boot - Spring-找到多个Spring Data模块,进入严格的存储库配置模式

Java ArrayList - 值,而不是从 ArrayList 中删除的项目

java - 如何使用日历类获取一个月内的所有日期?

javascript - 如何获取整个字符串直到+号长度发生变化?

html - 在我的 getStepContent 方法中显示一个文本框