Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate criteria column concatination / 16 сообщений из 16, страница 1 из 1
13.01.2012, 12:51:52
    #37612803
maldel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
В мэпинге hibernate имеется мэпинг на некоторые поля из бд. В частности

<property name="resourceFirstName" type="java.lang.String" column="R_FIRST_NAME"/>
<property name="resourceLastName" type="java.lang.String" column="R_LAST_NAME"/>

Передомной стоит задача написать hibernate criteria, сравнивающая "concat(resourceLastName, ' ', resourceFirstName)" на совпадения с определенной строкой.

Пытался делать несколькими способами:

1. .add(Restrictions.like("resourceFirstName"+" " +"resourceLastName", resourceName).ignoreCase());

2. определял в мэпинге <property name="fullname" formula="concat(resourceLastName, ' ', resourceFirstName)"/> и создавал соответствующее проперти в бине(private String fullname). В ответ на это выдается ошибка типа - не может найти колонку resourceLastName.

Буду благодарен за любые рекомендации)
...
Рейтинг: 0 / 0
13.01.2012, 13:09:56
    #37612848
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
Напишите запрос на HQL. Там можно использовтаь конкатенацию.
...
Рейтинг: 0 / 0
13.01.2012, 13:24:58
    #37612893
maldel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
Так раньше и было. Сейчас нужно переделать все под criteria.
...
Рейтинг: 0 / 0
13.01.2012, 13:29:15
    #37612900
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
Попробуйте Restrictions.sqlRestriction(...)
...
Рейтинг: 0 / 0
13.01.2012, 13:34:41
    #37612917
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
А в формуле почему просто плюсом не сконкатенировать? Без функции?
...
Рейтинг: 0 / 0
13.01.2012, 13:34:55
    #37612918
maldel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
Пробовал делать так
.add(Restrictions.sqlRestriction("lower(concat({alias}.resourceLastName, ' ', {alias}.resourceFirstName)) like lower(?)", resourceName, Hibernate.STRING) );

но так тоже не работало. не распознавало строку.
...
Рейтинг: 0 / 0
13.01.2012, 13:37:28
    #37612926
maldel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
BlazkowiczА в формуле почему просто плюсом не сконкатенировать? Без функции?

Вы имеете ввиду что то типа этого?:

formula="resourceLastName" +" "+ "resourceFirstName)"
...
Рейтинг: 0 / 0
13.01.2012, 13:41:16
    #37612946
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
maldelВы имеете ввиду что то типа этого?:
formula="resourceLastName" +" "+ "resourceFirstName)"
Да.
...
Рейтинг: 0 / 0
13.01.2012, 13:42:07
    #37612951
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
maldelПробовал делать так
.add(Restrictions.sqlRestriction("lower(concat({alias}.resourceLastName, ' ', {alias}.resourceFirstName)) like lower(?)", resourceName, Hibernate.STRING) );

но так тоже не работало. не распознавало строку.
Шо за {alias}?
...
Рейтинг: 0 / 0
13.01.2012, 13:45:44
    #37612960
maldel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
попробовал так
<property name="fullname" formula="resourceFirstName ' ' + resourceLastName"/>

Выдает прежнюю ошибку

org.postgresql.util.PSQLException: ERROR: column this_.resourcefirstname does not exist
...
Рейтинг: 0 / 0
13.01.2012, 13:47:35
    #37612966
maldel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
BlazkowiczmaldelПробовал делать так
.add(Restrictions.sqlRestriction("lower(concat({alias}.resourceLastName, ' ', {alias}.resourceFirstName)) like lower(?)", resourceName, Hibernate.STRING) );

но так тоже не работало. не распознавало строку.
Шо за {alias}?

переменная, через которую хибер ссылается на энтити, к которой строится criteria. Я пробовал и с ним и без него - результат одинаковый.
...
Рейтинг: 0 / 0
13.01.2012, 13:49:56
    #37612972
maldel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
maldelпопробовал так
<property name="fullname" formula="resourceFirstName ' ' + resourceLastName"/>

Выдает прежнюю ошибку

org.postgresql.util.PSQLException: ERROR: column this_.resourcefirstname does not exist

<property name="fullname" formula="resourceFirstName + ' ' + resourceLastName"/> так у меня в мэпинге
...
Рейтинг: 0 / 0
13.01.2012, 13:50:00
    #37612974
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
maldelпопробовал так
<property name="fullname" formula="R_FIRST_NAME + ' ' + R_LAST_NAME" />

Выдает прежнюю ошибку

org.postgresql.util.PSQLException: ERROR: column this_.resourcefirstname does not exist
Так в формуле наверное имена колонок надо было указывать, а не свойств.
...
Рейтинг: 0 / 0
13.01.2012, 13:50:52
    #37612976
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
maldel , это решение не помогло?
...
Рейтинг: 0 / 0
13.01.2012, 13:51:10
    #37612978
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
maldelпеременная, через которую хибер ссылается на энтити, к которой строится criteria. Я пробовал и с ним и без него - результат одинаковый.
Та же самая ошибка. Вы путаете SQL - колонки таблицы и HQL - свойства сущности.
Если используется sql/native query, то нужно писать имена колонок таблицы в базе.
...
Рейтинг: 0 / 0
13.01.2012, 14:25:26
    #37613080
maldel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate criteria column concatination
Спасибо, ребята! Ваши советы помогли.

<property name="fullname" formula="R_FIRST_NAME || ' ' || R_LAST_NAME"/>

.add(Restrictions.like("fullname", resourceName).ignoreCase());
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate criteria column concatination / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]