org.hibernate. - PullRequest
       18

org.hibernate.

5 голосов
/ 19 июля 2011

Я использую Postgres v8.3, который имеет тип columntype в качестве XML. DDL выглядит так:

CREATE TABLE contact (
"ID" INTEGER NOT NULL , 
"NAME" VARCHAR NOT NULL,
"Details" XML , ......

В файле отображения hbm.xml я отображаю его так:

<key-property name="Details" type="java.lang.String" >
<column name="Details" />
</key-property>

и я думаю, что это причина ошибки: Нет отображения диалекта для типа JDBC: 1111 когда я запускаю запрос выбора с помощью:

List<?> contactList= session.createSQLQuery("select * from contact where id=" + val.getId() + " and name= '" + val.getName + "'").list();

но как еще можно сопоставить тип "XML" типу данных java?

Ответы [ 3 ]

2 голосов
/ 22 июля 2011

Вы должны указать свой тип столбца, используя класс org.hibernate.usertype.UserType, предоставленный hibernate.

Здесь - очень хороший пример.

Спасибо.

1 голос
/ 11 октября 2013

Use addScalar();

Например

session.createSQLQuery("select public.flcpool_backup()")
                                     .addScalar("id", Hibernate.BIG_INTEGER)
                                     .addScalar("caf_tbl_id", Hibernate.BIG_INTEGER)
                                     .executeUpdate();  
0 голосов
/ 19 июля 2011

Попробуйте определить диалект соединения "hibernate.dialect" в hibernate.cfg.xml для postgres.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...