Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 如何将命名查询转换为sql查询?_Jpa - Fatal编程技术网

Jpa 如何将命名查询转换为sql查询?

Jpa 如何将命名查询转换为sql查询?,jpa,Jpa,我想在JPA2.1中将“命名查询”转换为“SQL查询”,并在运行它之前对其进行更改 例如,我有一个命名查询: 从CU.CODE=?1的客户中选择CU 我希望在PAR之后获取查询,并对其进行转换和编辑(例如添加架构名称),然后创建此查询: 从db1.cc1cust cu中选择*其中cu.cc1cod=?1 我该怎么做 关于可以在实体的@Table注释或orm.xml文件中指定数据库架构 在EclipseLink中,还可以使用SessionCustomizer中的tableQualifier设置模式

我想在JPA2.1中将“命名查询”转换为“SQL查询”,并在运行它之前对其进行更改


例如,我有一个命名查询: 从CU.CODE=?1的客户中选择CU 我希望在PAR之后获取查询,并对其进行转换和编辑(例如添加架构名称),然后创建此查询: 从db1.cc1cust cu中选择*其中cu.cc1cod=?1

我该怎么做


关于

可以在实体的@Table注释或orm.xml文件中指定数据库架构

在EclipseLink中,还可以使用SessionCustomizer中的tableQualifier设置模式

在JPQL中,没有办法立即更改模式

要在EclipseLink中获取JPQL查询的SQL,可以在DatabaseQuery上使用getSQLString(),请参阅,

如果您试图实现多租户支持,您可能希望调查EclipseLink的多租户支持


你有没有一个你想要实现的例子?如果是这样,请在此处发布。例如,我有一个命名查询:从CUSTOMER中选择CU,其中CU.CODE=?1,我想在PAR后获取查询,并对其进行转换和编辑(例如添加架构名称),然后创建此查询:SELECT*FROM db1.cc1cust CU,其中CU.cc1cod=?1请将您的问题和其他信息发布到此处,而不是在人们不容易看到的评论中。谢谢。:-)在重新阅读您的问题后,我意识到您试图做的基本上是一个带有JPA的多租户设置。这是不可能的,架构名称不是动态的。即将推出的Hibernate5将支持这种类型的功能,但它目前还没有在JPA中处理。