![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
VMA |
|
||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 13.3.2008 Где: Самара Репутация: нет Всего: нет |
имеется база PostgreSQL, где хранится таблица htable с полями: id тип bigint, xmldata тип xml;
имеется entity-класс для работы с данными
при попытке записать в таблицу в поле xmldata каких либо данных, postgreSQL выдает ошибку:
собственно вопрос какой тип задать полю xml в entity-классе? или нада какие-то настройки написать в файле конфигурации.... коего у меня нету Это сообщение отредактировал(а) VMA - 25.3.2008, 15:33 |
||||
|
|||||
Shaggie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: 2 Всего: 72 |
VMA, у меня нет Постгреса 8.3 для адекватного тестирования, так что буду телепатить
![]() Так важно работать с xmldata как с массивом байт? Возможно, String вызовет большее понимание у ORM. Храни данные внутри бина в строке (и рефлекшн будет обрабатывать значение как строку), и используй геттеры и сеттеры для отображения её в логике программы в виде массива байт.
Если это не поможет - выкладывай стектрейс и будем телепатить дальше. Добавлено через 2 минуты и 28 секунд Вопрос модераторам - а почему byte не подсвечивается? Это же зарезервированное слово. |
|||
|
||||
VMA |
|
||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 13.3.2008 Где: Самара Репутация: нет Всего: нет |
Доброго времени суток!
не важно с каким типом данных работать, главное вообще каким-либо образом запихать в это поле данные, а то какие только типы уже не пробывал, не работает (попытка присобачить аннотацию @Lob тоже ни к чему не приводит) ![]() сделал так
на что при commit-е получаю эксепшн
|
||||
|
|||||
Shaggie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: 2 Всего: 72 |
Вот вариант:
ссылка И ссылка на джары, имеющие такой функционал. Это касается, в первую очередь, PreparedStatement'ов, но, возможно, имеет смысл попробовать хранить Object xml и преобразовывать его в строку. Такой вопрос - а почему необходимо использовать именно xml data type для хранения в базе? Чем плох, например, text? Xml тип был введён в постгрес буквально вот только что, скорее всего стандартные аннотации просто не поспели за прогрессом, и драйверы тоже. |
|||
|
||||
VMA |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 13.3.2008 Где: Самара Репутация: нет Всего: нет |
раз есть такой тип данных то решили по работе его использовать, дабы проводить xslt преобразования на уровне базы, видимо теперь ещё придется и приведение к типу XML из text делать |
|||
|
||||
Shaggie |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: 2 Всего: 72 |
Придумал вариант!
Проблема на данный момент в том, что в стандартном классе org.hibernate.dialect.PostgreSQLDialect отсутствует ассоциация с xml. Решение - унаследовать класс и добавить необходимый функционал:
И зарегестрировать именно его качестве используемого диалекта. Добавлено через 5 минут и 43 секунды Рекомендую заглянуть в исходные коды класса org.hibernate.dialect.PostgreSQLDialect, там всё просто и понятно. К тому же вам, скорее всего, понадобятся стандартные постгресные функции для работы с xml, добавленные в версии 8.3 и отсутствующие на данный момент в стандартном диалекте. Тогда в конструкторе вашего диалекта после регистрации типа надо будет также зарегистрировать функции с помощью registerFunction(). Там, судя по исходникам, всё несложно. Удачи! Добавлено через 8 минут и 15 секунд import java.sql.Types, конечно. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |