【发布时间】:2011-10-15 22:36:01
【问题描述】:
我有一个条件查询不起作用。这里是模型:
@Entity
public class Flaw extends BaseEntity implements Serializable {
...
@Lob
@Basic(fetch=FetchType.LAZY)
private String text;
...
这个查询将由 hibernate 执行(来自 Logs):
Hibernate:
select
...
flaw0_.text as col_7_0_,
...
from
Flaw flaw0_,
where
...
and (
flaw0_.text like ?
)
order by
flaw0_.text desc
然后我得到以下 StackTrace:
3171 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42883
3171 [main] ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: operator does not exist: text ~~ bigint
3198 [main] INFO org.hibernate.impl.SessionFactoryImpl - closing
使用 oder 属性可以正常工作,只是使用 CLOB 上的 like 运算符无法正常工作。这是 Hibernate 还是 Postgres 问题?或者这种类型的查询在 CLOB 上是不可能的?
我正在使用:
- 休眠 3.6.3
- PostgreSQL 8.4.8
- 带有 SSL 的 PostgreSQL 8.3 JDBC3(内部版本 603)
有什么想法吗?
更新: 我做了一些进一步的调查:
- 以上注解正确创建了
textpostgres 类型 - 如果我运行 sql 查询,hibernate 会打印出来,它可以工作。
BR
雷内-
【问题讨论】:
标签: java hibernate postgresql jpa jpa-2.0