Как использовать статическую переменную в качестве значения для named-native-query внутри JPA? - PullRequest
0 голосов
/ 26 октября 2019

Я хочу использовать статическую переменную в качестве запроса для named-native-запроса в файле JPA (persistence.xml).

Я использую Spring boot 2.1.9 и hibernate 5.3.12.

У меня есть интерфейс:

public interface SqlQueryFacture {
    String MEMOIRES_TABLE_BY_FACTURE = "SELECT ......";
}

, и я хочу использовать MEMOIRES_TABLE_BY_FACTURE в качестве значения в файле persistence.xml, как этот


<entity-mappings version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence/orm"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence/orm
    http://xmlns.jcp.org/xml/ns/persistence/orm_2_2.xsd">

    <entity class="fr.pp.entities.factures.Facture">
        <named-native-query name="Facture.getMemoiresTableByFactureId" result-set-mapping="MemoireTableRowDtoMapping">
            <query>SqlQueryFacture.MEMOIRES_TABLE_BY_FACTURE</query>
        </named-native-query>
    </entity>

</entity-mappings>

Можно ли это сделать безиспользовать @NamedNativeQuery внутри класса сущности?

1 Ответ

0 голосов
/ 26 октября 2019

Я предполагаю, что вы пытаетесь выполнить динамические запросы через JPA. К сожалению, JPA не обеспечивает поддержку динамических запросов.

Вы не можете сделать в JPA (persistence.xml):

<query>SqlQueryFacture.MEMOIRES_TABLE_BY_FACTURE</query>

Например:

<!-- Query takes HQL (Hibernate Query Language) directly -->
<query>SELECT p from Product p</query>

Это разрешено.

Надеюсь, это поможет.

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