2011-02-18 23 views
6

Postgres JDBC sürücüsü, UTF-8 clobs'larını doğru şekilde işlemiyor gibi görünüyor. Clob'u geri aldığınızda karakterler doğru değil (ascii olmayan karakterler için? Işareti alırsınız).Postgres JDF ile UTF-8 clobs'leri

Sözde bu bilinen bir sorundur: CLOBs vardı alanları Ben sadece yapmış yüzden genellikle CLOBs önlemek Uygulamam için Neyse ki http://archives.postgresql.org/pgsql-jdbc/2011-02/msg00032.php

+0

Bahse girerim, bu karakterler veritabanında ilk etapta doğru bir şekilde yapmadı. UTF-8 karakterleri ve JDBC sürücüsü ile herhangi bir sorunum yok. Ama Postgres'in "CLOB" olduğunu düşündüğünüz şey ilginç olurdu. Özellikle de bunu varchar'a dönüştürdüğünüzde –

+0

@a_horse_with_no_name değil ne olduğunu bir clob postgres içinde olduğunu ne hibernate olması gerektiğini düşünür :) –

+0

Bu ahlaksız bir şey yine korkunç. –

cevap

0

clob? text veya varchar'u kastediyorsunuz, PostgreSQL'de clob veri türü yok. PostgreSQL JDBC sürücüsünün bununla ilgili bir problemi yok, UTF8 desteği olmadan işe yaramaz. Burada iyi çalışıyor.

+0

Klob dediğimde, "metin" demek istedim çünkü Hibernate/JPA, Lob alanları. Clob, JDBC'nin Postgres metin alanlarını aradığı şeydir. –

+0

Hazırda Bekletme özelliğini kullanıyor musunuz, bu nedenle alanlarınızı neye ekliyorsunuz? –

+0

Hazırda bekletme ve utf8 kullanıyoruz. Her şey çok normal, özel bir şey değil. Java programcıları orijinal yapılandırmayı yaptı, ek açıklamalarla size yardımcı olamam. Üzgünüz –

6

Hazırda bekletme'de yapılan klob tanımına @Type (type = "org.hibernate.type.StringClobType") eklemek benim için çözer.

+0

Sadece JPA'ya ve herhangi bir Hibernate özelliğine +1 sahip olmaya çalışıyorum. –

+3

Normalde, @Type (tür = "org.hibernate.type.TextType") ek açıklamasını kullanmıştım ancak başvurumu Oracle ile veritabanı olarak dağıtan sorunlara rastladım. Ancak, @ Tür (type = "org.hibernate.type.StringClobType") Oracle ve Postgres ile çalışır. Teşekkür ederim. – liecno