2013-07-14 2 views
0

Я хочу преобразовать «именованный запрос» в «SQL-запрос» в JPA 2.1 и изменить его перед запуском.Как преобразовать именованный запрос в sql-запрос?

, например, у меня есть этот запрос с именем: ВЫБРАТЬ CU ОТ КЛИЕНТА ГДЕ CU.CODE = 1 и я хочу, чтобы получить запрос после Парс и конвертировать и редактировать его (например, добавить имя схемы) и создать этот запрос: SELECT * from db1.cc1cust cu, где cu.cc1cod =? 1

как я могу это сделать?

рассматривает

+1

у вас есть пример того, что вы пытаетесь достичь? Если да, отправьте его здесь. –

+0

например, у меня есть этот именованный запрос: SELECT CU FROM CUSTOMER WHERE CU.CODE =? 1, и я хочу получить запрос после парсов и преобразовать и отредактировать его (например, добавить имя схемы) и создать этот запрос: SELECT * from db1. cc1cust cu, где cu.cc1cod =? 1 –

+0

Пожалуйста, отредактируйте свой вопрос и разместите дополнительную информацию там, а не в комментариях, где люди не могут их легко увидеть. Благодарю. :-) –

ответ

0

Схема базы данных может быть определено на @Table аннотацию вашей организации или orm.xml файла.

В EclipseLink вы также можете установить схему с помощью tableQualifier в SessionCustomizer.

Невозможно изменить схему на лету в JPQL.

Чтобы получить SQL для JPQL запроса в EclipseLink вы можете использовать getSQLString() на DatabaseQuery см, http://wiki.eclipse.org/EclipseLink/FAQ/JPA#How_to_get_the_SQL_for_a_Query.3F

Если вы пытаетесь реализовать поддержку многопользовательских, вы можете исследовать EclipseLink мульти -tenant поддержка,

http://www.eclipse.org/eclipselink/documentation/2.5/jpa/extensions/a_multitenant.htm#BABIEJGD

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