休眠查询中的 Postgres ltree

Posted

技术标签:

【中文标题】休眠查询中的 Postgres ltree【英文标题】:Postgres ltree in hibernate query 【发布时间】:2014-03-11 12:25:40 【问题描述】:

我使用 Play Framework 1.2.5.3 和 PostgreSQL 9.x。

我有 WorkArea 类作为带有字段的数据库模型

@Column(columnDefinition = "ltree", insertable = false, updatable = false)
public String tree;

在 postgre 中,它是一个数据库表 workareas,字段为 tree(类型 ltree

我想将 Hibernate 查询与 postgres ltree 操作一起使用。例如:

List<WorkArea> workAreas = WorkArea.find("tree @> :tree").bind("tree", otherArea.tree).fetch();

或者

List<WorkArea> workAreas = WorkArea.find("ltree_isparent(:tree, tree)").bind("tree", otherArea.tree).fetch();

我该怎么做?

【问题讨论】:

【参考方案1】:

如果要调用存储过程,则需要使用本机查询。

Query query = JPA.em().createNativeQuery("some sql query :foo", WorkArea.class);
query.setParameter("foo", "bar");
List<WorkArea> results = query.getResultList();

【讨论】:

以上是关于休眠查询中的 Postgres ltree的主要内容,如果未能解决你的问题,请参考以下文章

什么 Postgres 类型将映射到休眠中 Float 类型的列?

休眠中的时间戳

休眠日志显示更新查询,但没有选择

休眠缓慢以获取 Postgres 连接

postgres串行/大串行列的正确休眠ID生成器?

如何使用 JPA 和休眠映射 Java/Kotlin 字符串数组和 Postgres SQL 数组