Image

Imagehedin wrote in Imageru_java

Categories:

Hibernate Экстендим диалект.

Итак вступил я на эту скользкую тропу.

registerFunction проходит на ура. И приносит радости НО!

Чтобы почуствовать себя белым человеком хочется обьяснить хибернайту что есть такие интересные типы в базе как

CREATE TYPE geometry
(INPUT=geometry_in, OUTPUT=geometry_out, DEFAULT='',
INTERNALLENGTH=-1, ALIGNMENT=int4, STORAGE=MAIN);

Для которого в коде сещуствует класс понимающий что это такое.

CREATE TYPE tsvector
(INPUT=tsvector_in, OUTPUT=tsvector_out, DEFAULT='',
INTERNALLENGTH=-1, ALIGNMENT=int4, STORAGE=EXTENDED);

и подобные.

Можно конечно хакерствовать подсовывая строчки и преобразования к этим типам в SQL.
Но както маленько не красиво это. Хочется своих типов.
Хочется научить хибернайт понимать эти типы и скармливать соответсвующим обьектам.

Для этих целей напрашивается структурка вида
registerColumnType( Types.BIT, "bool" );

Очень хочется написать
registerColumnType( Types.OTHER, "geometry" );

Но вот что делать дальше.

как обьяснить ему порядок работы с этим типом ... пока не понимаю.

Если комуто тема интересна поглядите package org.hibernate.dialect;

Может чего на медитируется ...