私は現在glassfish 2.1で動作しているアプリケーションをjboss 6.1で動作させようとしています。そして、次の問題がある、私はアプリケーションサーバーに関連するとは思っていないが、むしろポストグルや冬眠と関係すると思う。 Postgresqlの9.0以下のソフトウェアを使用してオペレータが存在しません:text = bigint
、とにかく、GlassFishの
上のJBossと3.2で問題を3.6.6を休止。
この名前付きクエリ:
@NamedQuery(name="entry.updateDuplicate",
query="UPDATE entry SET timestamp = :timestamp WHERE username = :username AND searchDocument = :searchDocument")
このコード:
Query query = em.createNamedQuery("Entry.updateDuplicate");
query.setParameter("timestamp", new Date(System.currentTimeMillis()));
query.setParameter("username", username);
query.setParameter("sDocument", sString);
int affected = query.executeUpdate();
がログにこの障害を生成します。
10:28:16,149 INFO [STDOUT] Hibernate: update fu set c_timestamp=? where c_username=? and c_document=?
10:28:16,165 WARN [org.hibernate.util.JDBCExceptionReporter] SQL Error: 0, SQLState: 42883
10:28:16,165 ERROR [org.hibernate.util.JDBCExceptionReporter] ERROR: operator does not exist: text = bigint
Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Position: 77
の表は、このです:
TABLE fu
(
id bigint NOT NULL, document text, timestamp timestamp without time zone, username character varying(255), CONSTRAINT fu_pkey PRIMARY KEY (c_id)
)
「id」(唯一のbigIntフィールド)と関係があるような縫い目は誰にでもありますが、それを解決する理由や方法を理解できません。
ご提案は大歓迎です!
そのトリックをした、ありがとう。 – linusno
要約: '@Lob'の' @Type(type = "org.hibernate.type.TextType") 'を追加してください – loopasam