powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / CriteriaBuilder ORA-12519, TNS:no appropriate service handler found
5 сообщений из 5, страница 1 из 1
CriteriaBuilder ORA-12519, TNS:no appropriate service handler found
    #37886355
Niky4000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
            CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
            CriteriaQuery<Object> criteriaQuery = criteriaBuilder.createQuery();
            Root<Object> from = criteriaQuery.from(classname);
            CriteriaQuery<Object> select = criteriaQuery.select(from);
            Predicate main_predicate = criteriaBuilder.equal(from.get("mcod").as(classname), Integer.valueOf(lpucode));
            criteriaQuery.where(main_predicate);
            TypedQuery<Object> typedQuery = em.createQuery(select);
            List some_ret = typedQuery.getResultList();


Есть вот такое.

Проблема в том, что если в табличке classname, есть столбцы с именами, совпадающими с ключевыми словами, например, INDEX, то в RunTime валится исключение ORA-12519, так как генерируется запрос такого вида:
select field1,field2,index,field3.... from some_table
Если бы генерировался такой запрос:
select "FIELD1","FIELD2","INDEX","FIELD3".... from some_table
То тогда было бы всё нормально.
Вопрос:
Можно ли как-то заставить CriteriaBuilder экранировать названия столбцов?
...
Рейтинг: 0 / 0
CriteriaBuilder ORA-12519, TNS:no appropriate service handler found
    #37886442
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имена столбцов они в маппинг указываются, ведь. Там и экранируются. А Criteria API он же свойствами оперирует.
...
Рейтинг: 0 / 0
CriteriaBuilder ORA-12519, TNS:no appropriate service handler found
    #37886449
Niky4000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В сущности, да?
Код: sql
1.
2.
3.
4.
5.
6.
    @Column(name = "INDEX", length = 6)
    private String index;
    @Column(name = "RGN1")
    private Short rgn1;
    @Column(name = "RGN2")
    private Short rgn2;


Написать что-то типа @Column(name = "\"INDEX\"", length = 6)?
...
Рейтинг: 0 / 0
CriteriaBuilder ORA-12519, TNS:no appropriate service handler found
    #37886456
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, только точно не скажу. Возможны и квадратные скобки и одинарные кавычки. Зависит от JPA провайдера и самой базы, кажется.
...
Рейтинг: 0 / 0
CriteriaBuilder ORA-12519, TNS:no appropriate service handler found
    #37886585
Niky4000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
Вот так ниписал:
Код: sql
1.
2.
3.
    @Size(max = 6)
    @Column(name = "\"INDEX\"", length = 6)
    private String index;


Работает!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / CriteriaBuilder ORA-12519, TNS:no appropriate service handler found
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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