powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate criteria column concatination
16 сообщений из 16, страница 1 из 1
Hibernate criteria column concatination
    #37612803
maldel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В мэпинге 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
Hibernate criteria column concatination
    #37612848
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напишите запрос на HQL. Там можно использовтаь конкатенацию.
...
Рейтинг: 0 / 0
Hibernate criteria column concatination
    #37612893
maldel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так раньше и было. Сейчас нужно переделать все под criteria.
...
Рейтинг: 0 / 0
Hibernate criteria column concatination
    #37612900
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте Restrictions.sqlRestriction(...)
...
Рейтинг: 0 / 0
Hibernate criteria column concatination
    #37612917
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в формуле почему просто плюсом не сконкатенировать? Без функции?
...
Рейтинг: 0 / 0
Hibernate criteria column concatination
    #37612918
maldel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал делать так
.add(Restrictions.sqlRestriction("lower(concat({alias}.resourceLastName, ' ', {alias}.resourceFirstName)) like lower(?)", resourceName, Hibernate.STRING) );

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

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

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

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

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

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

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

переменная, через которую хибер ссылается на энтити, к которой строится criteria. Я пробовал и с ним и без него - результат одинаковый.
...
Рейтинг: 0 / 0
Hibernate criteria column concatination
    #37612972
maldel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Hibernate criteria column concatination
    #37612974
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maldelпопробовал так
<property name="fullname" formula="R_FIRST_NAME + ' ' + R_LAST_NAME" />

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

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

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

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


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