2011-07-29 18 views
2

私は条件照会を実際には行っていません。ここではモデル:Hibernate Criteria CLOB上のlike like演算子(Postgres 8.4)

@Entity 
public class Flaw extends BaseEntity implements Serializable { 
    ... 
    @Lob 
    @Basic(fetch=FetchType.LAZY) 
    private String text; 
    ... 

このクエリは、(ログから)休止状態で実行されようとしている:

Hibernate: 
    select 
     ... 
     flaw0_.text as col_7_0_, 
     ... 
    from 
     Flaw flaw0_, 
    where 
     ... 
     and (
      flaw0_.text like ? 
     ) 
    order by 
     flaw0_.text desc 

しかし、その後、私は、次のスタックトレースを取得:

オーデルの施設
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 

CLOB上の同様の演算子ではうまく動作しません。これはHibernateまたはPostgresの問題ですか?または、このタイプの問合せはCLOBでは不可能ですか?

私が使用しています:

  • は3.6.3
  • のPostgreSQL 8.4.8を休止
  • PostgreSQLのSSL

任意のアイデア(603ビルド)で8.3 JDBC3?

更新: 私はいくつかのさらなる調査んでした:

  • は、上記の注釈は、私はSQLクエリを実行した場合、それはプリントアウト休止正しくtext Postgresのタイプ
  • を作成し、それが動作します。

BR

Rene-

答えて

1

私が働いていた、次の解決策を見つけ周り試みた後私のために。私は次の注釈を追加しなければならなかった、そして今それは動作する:

@Type(type = "org.hibernate.type.TextType") 
0

のCLOBは完全にはPostgresのバージョンでサポートされているように、それは、可能性は表示されません。http://www.postgresql.org/docs/8.4/interactive/unsupported-features-sql-standard.html

+0

私はこれは問題ではないと思う、私の更新された記事を参照してください。 – reen

+0

この同じトピックの興味深いスレッドは次のとおりです。http://groups.google.com/group/h2-database/browse_thread/thread/d72435d1382c39c4ユーザは、Hibernateのコードを修正して動作させる必要がありました。アップデートがメインのHibernateトランクに入ったかどうかはわかりません。 – atrain

+0

ご協力ありがとうございます。私は最終的にコードを変更しないで解決策を見つけました。私の答えを見てください。 – reen

関連する問題