我有一个标准查询没有真正起作用。这里的模型:
@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上是不可能的?
我正在使用:
任何想法?
更新 我做了一些进一步的调查:
text
postgres类型BR
勒 -
答案 0 :(得分:1)
尝试后,我发现以下解决方案对我有用。我必须添加以下注释,现在它可以工作:
@Type(type = "org.hibernate.type.TextType")
答案 1 :(得分:0)
似乎不可能,因为您的Postgres版本完全支持CLOB:http://www.postgresql.org/docs/8.4/interactive/unsupported-features-sql-standard.html