Есть ли способ получить запрос из файла XML в формате строки? - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть XML файлы с несколькими именованными запросами, определенными в них, и все работает отлично.

Проблема в том, что я делаю более сложный запрос, и я хотел бы знать, возможно ли получить этот запрос в формате строки в моем коде. Прямо сейчас я получаю запросы из файлов следующим образом:

Query query = entityManager.createNamedQuery("CareerPreference.SelectOne", CareerPreference.class);
query.setParameter(EMPLOYEE_ID_PARAMETER_NAME, employeeId);
query.setParameter(STATUS_PARAMETER_NAME, RowStatus.ACTIVE.getNumVal());

Так что я хотел в основном вместо использования метода createNamedQuery () , который я хотел знать как я мог получить запрос "CareerPreference.SelectOne" из моего xml файла. Я оставлю здесь мой xml с кратким запросом, опущенным.

<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm
                 http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" version="1.0">

 <named-native-query name="CareerPreference.SelectOne"
                     result-class="com.coreapp.entity.CareerPreference">
        <query>
          **query ommited for brevity**
        </query>
    </named-native-query>

1 Ответ

1 голос
/ 20 апреля 2020

Вы можете привести запрос к интерфейсу Hibernate Query:

Query query = entityManager.createNamedQuery("CareerPreference.SelectOne", CareerPreference.class);
org.hibernate.query.Query hibernateQuery = query;

И затем вызвать getQueryString()

String queryString = hibernateQuery.getQueryString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...