Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / заставить Hibernate послать запрос с кавычками внутри! / 15 сообщений из 15, страница 1 из 1
23.02.2012, 11:31:50
    #37675371
kaldorey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
Есть база в PostgreSQL, в ней таблица ITEM - имя в верхнем регистре. Sql в этой субд противоречит стандарту, и имена без кавычек переводит не в верхний, а в нижний регистр. Вот и получается, что в моем запросе
Код: plsql
1.
select * from ITEM

ITEM преобразуется в item и PG выдает ошибку "relation "item" does not exists".
Вот как я все связываю:
Есть Item.java
Код: java
1.
2.
3.
@Entity
@Table(name = "ITEM")
public class Item {...


далее имеется интерфейс ItemDAO.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
...
public interface ItemDAO {

	public void addItem(Item item);

	public List<Item> listItem();

	public void removeItem(Integer id);

}


Затем реализация интерфейса ItemImpl.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
...import com.food.manager.domain.Item;

@Repository
public class ItemImpl implements ItemDAO {

	@Autowired
	private SessionFactory sessionFactory;

	public void addItem(Item item) {
		sessionFactory.getCurrentSession().save(item);
	}

	@SuppressWarnings("unchecked")
	public List<Item> listItem() {

		return sessionFactory.getCurrentSession().createQuery("from Item")
			.list();
	}
...


Я начинающий еще, подскажите, правильно ли я понимаю, что именно так происходит построение запроса?

И чтобы послать запрос Select * from "ITEM" вместо Select * from ITEM , надо внедрить каким-то образом кавычки в @Table. Буду очень признателен, если подскажете как, или альтернативный выход из положения. Переименовывать таблицы не предлагать. Спасибо
...
Рейтинг: 0 / 0
23.02.2012, 11:44:53
    #37675379
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
kaldorey,
какой диалект в хибере используется? какая версия субд?

У меня такой проблемы нет хотя имя таблицы такое есть, хибер сам всё разруливает.
...
Рейтинг: 0 / 0
23.02.2012, 11:50:05
    #37675385
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
GregTkУ меня такой проблемы нет хотя имя таблицы такое есть, хибер сам всё разруливает.
Не всегда и не особо он разруливает.

Только я не знаю зачем это на форуме спрашивать. Простое гугление массы ссылок выдаёт

http://stackoverflow.com/questions/2224503/creating-field-with-reserved-word-name-with-jpa
http://docs.jboss.org/hibernate/stable/core.old/reference/en/html/mapping-quotedidentifiers.html
http://www.mkyong.com/hibernate/how-to-use-database-reserved-keyword-in-hibernate/
...
Рейтинг: 0 / 0
23.02.2012, 11:56:25
    #37675391
kaldorey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
PostgreSQL 8.4.4
Диалект org.hibernate.dialect.PostgreSQLDialect
Ну с этой проблемой я уже справился, сейчас буду дальше изучать. Надо было сделать так
Код: java
1.
@Table(name = "\"ITEM\"")


это java лексика, а я уже запутался в языках просто, хотел как в оракле '''' замутить :)
...
Рейтинг: 0 / 0
23.02.2012, 11:59:23
    #37675395
kaldorey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
а насчет ссылок, к сожалению, глубоким знанием английского не страдаю, и русскоязычного описания проблемы не нашел, надеюсь, другим это поможет
...
Рейтинг: 0 / 0
23.02.2012, 12:01:22
    #37675401
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
kaldoreyа насчет ссылок, к сожалению, глубоким знанием английского не страдаю, и русскоязычного описания проблемы не нашел, надеюсь, другим это поможет
Пишите на PHP. Серьезно. Без английского учить Java будет не реально сложно.
...
Рейтинг: 0 / 0
23.02.2012, 12:05:52
    #37675407
kaldorey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
Ну, я лучше подучу английский, т.к. в java есть нужный функционал, которого скорее всего нет в PHP
...
Рейтинг: 0 / 0
23.02.2012, 12:10:24
    #37675411
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
kaldoreyНу, я лучше подучу английский, т.к. в java есть нужный функционал, которого скорее всего нет в PHP
Согластно местным поверьям, даже в Delphi есть всё тоже самое что и в Java, и, даже, лучше. Что уж, говорить про PHP.
...
Рейтинг: 0 / 0
23.02.2012, 12:15:24
    #37675414
kaldorey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
BlazkowiczСогластно местным поверьям, даже в Delphi есть всё тоже самое что и в Java, и, даже, лучше. Что уж, говорить про PHP.
Независимость от платформы+ высокая отказоустойчивость + АОП + низкоуровневое программирование?
...
Рейтинг: 0 / 0
23.02.2012, 13:27:08
    #37675488
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
kaldoreyBlazkowiczСогластно местным поверьям, даже в Delphi есть всё тоже самое что и в Java, и, даже, лучше. Что уж, говорить про PHP.
Независимость от платформы+ высокая отказоустойчивость + АОП + низкоуровневое программирование?

ага
COM+Да+MeAOP+WinAPI32\Assembler
...
Рейтинг: 0 / 0
23.02.2012, 13:30:29
    #37675493
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
kaldoreySql в этой субд противоречит стандарту,
это на любом ЯП плохо - приведи в соответствие.
При создании таблицы - убери кавычки.
...
Рейтинг: 0 / 0
23.02.2012, 15:47:10
    #37675642
Йуный джавистЪ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
ITEM преобразуется в item и PG выдает ошибку "relation "item" does not exists".

Такого не может быть - в постгресе имена таблиц case-insensitive. Либо такой таблицы вообще нет, либо она находится в схеме, не указанной в search_path.
...
Рейтинг: 0 / 0
23.02.2012, 16:02:52
    #37675650
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
Йуный джавистЪITEM преобразуется в item и PG выдает ошибку "relation "item" does not exists".

Такого не может быть - в постгресе имена таблиц case-insensitive. Либо такой таблицы вообще нет, либо она находится в схеме, не указанной в search_path.
ну сделай

Код: sql
1.
2.
3.
CREATE TABLE test."Table1" (
  id INTEGER
) WITHOUT OIDS;


и доложи о результатах
...
Рейтинг: 0 / 0
23.02.2012, 19:01:20
    #37675783
kaldorey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
указывал конкретно со схемой, не работало так, так что регистрозависимые, это уже внутри данные наверно могут быть как хочешь
...
Рейтинг: 0 / 0
23.02.2012, 19:21:44
    #37675800
Йуный джавистЪ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
заставить Hibernate послать запрос с кавычками внутри!
и доложи о результатах

Я был не прав.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / заставить Hibernate послать запрос с кавычками внутри! / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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