spring - 如何在 JPA 中使用静态变量作为命名本机查询的值?
问题描述
我想使用静态变量作为 JPA (persistence.xml) 文件中的命名本机查询的查询。
我正在使用 Spring Boot 2.1.9 和休眠 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
实体类的情况下做到这一点吗?
解决方案
我猜您正在尝试通过 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>
这是允许的。
推荐阅读
- javascript - 如何获取当前会话的 JSESSIONID
- sql - 如何仅使用日期字段计算唯一的每日和每周发布日期?
- python - 如何避免蜘蛛(网络爬虫)爬取已经爬过的网站?
- android - Android Camera2 应用程序在离开相机活动并重新进入后中断
- jquery - 媒体查询中的 jQuery 函数未按预期触发
- c# - 导航返回后如何刷新页面。不调用 OnAppearing
- php - Symfony 注册表单没有保存到 Doctrine
- c# - 日期时间选择器和月历改变外观
- c++ - 程序在我的 C++ 工作区中找不到头文件
- amazon-web-services - 是否有计算红移年、月和日日期差异的函数?