2017-02-06 2 views
0

У меня есть столбец в БД, который имеет тип полукокса (20), и я отображается столбец, как показано нижеспящий режим query.list() возвращают одно значение обугленного

<property name="my_cloumn" type="string"> 
     <column name="My_column" sql-type="char(20)"> 
     </column> 
    </property> 

У меня есть данные для этого столбца в дб как 123456789123456789

, когда я исполняю Query.list(), я получаю первый символ только есть «1»

, что может быть причиной проблемы?

Я использую Hibernate 3.3

Update 1:

Я исполняющей ниже перед выполнением Query.list()

query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP); 

ответ

0

Там может быть HBM ошибка есть, не правильно синтаксический анализ данных типа char(20) последовательно в рамках структуры. Для того, чтобы быть явным, попробуйте это отображение вместо:

<property name="my_cloumn" type="string"> 
    <column name="My_column" sql-type="char" length="20" /> 
</property> 
+0

Спасибо, я постараюсь и обновлять – Raj

+0

еще ее не работает – Raj

+0

Какую базу данных вы используете? – Naros

0

В Oracle SQL:

CAST(My_column AS VARCHAR2(20)) 

В Hibernate:

cast(my_cloumn as string) 

если ANSI бросание() и извлечения() поддерживается по базовой базе данных

Это верно, поскольку вы используете Oracle. Я попытался использовать CAST с CHAR (20), который не устраняет проблему, поэтому вы должны использовать VARCHAR2. В моей ситуации использовался Oracle SQL, поэтому я не смог проверить пример Hibernate, который я дал, но вы поняли эту идею.

http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/queryhql.html#queryhql-expressions

Смежные вопросы