首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将列表插入到SpringData中作为一种虚拟数据库表使用

将列表插入到SpringData中作为一种虚拟数据库表使用
EN

Stack Overflow用户
提问于 2022-08-12 09:37:45
回答 1查看 35关注 0票数 1

我有一个数据库表,需要对其执行排序查询。若要对另一个表进行排序,则需要对另一个表进行联接。问题是数据库中不存在另一个表,因为我们从CSV文件读取服务启动时所需的数据,并将其保存为内存中的列表。

是否有可能以某种方式将这个列表作为一种虚拟数据库注入Spring数据?以便它可以使用这个列表来进行所需的连接和排序。

据我所知,我唯一的其他选择是从这个内存列表中创建一个真正的数据库表,或者加载整个表并在服务本身中进行排序。

EN

回答 1

Stack Overflow用户

发布于 2022-08-15 13:00:34

您可以通过Spring数据规范按表达式添加一个特殊的顺序,但这将是非常糟糕的。在HQL中,如下所示:

代码语言:javascript
运行
复制
case rootAlias.attribute when 'value1' then 1 when 'value2' then 2 ... else null end

它将返回一些整数值,您可以根据所具有的映射对其进行升序或降序排序。

即使您有很多值,我还是建议您不要执行联接,而是尝试使主表的attribute可排序,这样您就不需要这种映射了。您可以创建一个触发器来维护基于映射的列,该列可以直接用于排序。如果通过JPA/Hibernate执行所有更改,还可以使用@PreUpdate/@PrePersist侦听器来处理本列的维护。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73332130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档