Показать сгенерированный SQL в toplink в eclipse - PullRequest
2 голосов
/ 23 ноября 2010

Я использую библиотеки EclipseLink в eclipse (во время разработки) и внедряю в TopLink, мне нужно показать сгенерированный оператор sql.

Я использую следующий файл persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
    <persistence-unit name="myPUnit" transaction-type="JTA">
        <provider>
            oracle.toplink.essentials.PersistenceProvider
        </provider>
        <jta-data-source>jdbc/dcds</jta-data-source>
        <properties>
            <property name="toplink.cache.shared.default" value="false"/>
            <property name="toplink.logging.level" value="FINE" />
        </properties>
    </persistence-unit>
</persistence>

Я знаю, что он должен показывать сгенерированные SQL-операторы, но это не так.

Ответы [ 2 ]

2 голосов
/ 24 августа 2012

Чтобы увидеть SQL для JPA-запроса, вы можете включить вход в систему FINE или ниже.

Чтобы получить SQL для конкретного запроса во время выполнения, вы можете использовать API DatabaseQuery.

Session session = em.unwrap(JpaEntityManager).getActiveSession(); 
DatabaseQuery    databaseQuery = ((EJBQueryImpl)query).getDatabaseQuery(); 
databaseQuery.prepareCall(session, new DatabaseRecord()); 
String sqlString = databaseQuery.getSQLString();

Этот SQL будет содержать? для параметров. Для перевода SQL с аргументами вам необходим DatabaseRecord со значениями параметров.

Session session = em.unwrap(JpaEntityManager).getActiveSession();
DatabaseQuery databaseQuery = ((EJBQueryImpl)query).getDatabaseQuery();
String sqlString = databaseQuery.getTranslatedSQLString(session, recordWithValues);

Источник: Как получить SQL для запроса

1 голос
/ 11 декабря 2010

В качестве обходного пути найдите сгенерированные SQL здесь: app_serv_home \ j2ee \ home \ log \ oc4j \ log.xml, см .: http://m -hewedy.blogspot.com / 2010/11 / обходной путь для поиска-сгенерированных SQL-на-oas.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...