首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Postgres ltree扩展的Spring JPA

带有Postgres ltree扩展的Spring JPA
EN

Stack Overflow用户
提问于 2020-01-29 04:24:04
回答 1查看 733关注 0票数 0

我正在尝试使用Spring JPA来创建ltree索引。我有一个包含如下路径的实体

代码语言:javascript
复制
@Type(type = "com.thomaster.ourcloud.model.filesystem.LTreeType")
@Column(columnDefinition="ltree")
private String relativePath;

LTreeType类是从这里的Getting error when mapping PostgreSQL LTREE column in hibernate复制粘贴的。

在数据库中正确地完成了索引,添加了ltree扩展。不过,当我运行以下查询时

代码语言:javascript
复制
@Query(value = "SELECT * FROM file_system_element WHERE relative_path ~ lquery(:pathToSearch)", nativeQuery = true)
List<FileSystemElement> findAllByPath(@Param("pathToSearch") String pathToSearch);

我得到了org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111

当我将查询更改为

代码语言:javascript
复制
SELECT * FROM file_system_element WHERE relative_path ~ CAST(:pathToSearch AS lquery)
#OR TO THIS
SELECT * FROM file_system_element WHERE relative_path @> CAST(:pathToSearch AS ltree)
#OR TO THIS
SELECT * FROM file_system_element WHERE relative_path @> ltree(:pathToSearch)
#OR TO THIS
SELECT * FROM file_system_element WHERE ltree(relative_path) ~ lquery(:pathToSearch)

我得到了同样的错误。

代码语言:javascript
复制
SELECT * FROM file_system_element WHERE relative_path @> lquery(:pathToSearch)

我得到了

代码语言:javascript
复制
org.postgresql.util.PSQLException: ERROR: operator does not exist: ltree @> lquery

以及:

代码语言:javascript
复制
SELECT * FROM file_system_element WHERE ltree(relative_path) ~ ltree(:pathToSearch)

我得到了:

代码语言:javascript
复制
ERROR: operator does not exist: ltree ~ ltree

正如你所看到的,我尝试了几乎所有的组合,仍然没有结果。我还在实体管理器上尝试了与原生查询相同的查询,但没有什么不同。这里我漏掉了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-02 02:44:33

解决了它,这是我的错误。查询参数为

"folder.anotherFolder"

而不是

"folder.anotherFolder.*"

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

https://stackoverflow.com/questions/59956476

复制
相关文章

相似问题

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