【发布时间】:2021-11-01 00:29:48
【问题描述】:
我正在使用带有 oracle 数据库的 spring-data-jpa,并且需要从两个具有相同结构但不同模式的表中进行联合选择。 jpa 可以做到这一点(不使用数据库视图)吗?
更新:
因为我有很多表,所以我决定不使用 union 创建本机 sql 语句。相反,我使用 StatementInspector 添加架构并创建联合 sql 语句。如果我有没有 where 条件的 select 语句,这很好用。一旦我使用 where 条件,我就会得到一个 SQL 错误:17041 "Missing IN or OUT parameter",因为未设置联合选择中的参数。 Hibernate 使用问号(位置参数)来设置查询参数,我无权访问拦截器中的参数。有没有办法在春季启动/休眠中设置命名参数而不是问号?还是有人已经遇到过类似的问题并且知道我该如何解决?
【问题讨论】:
-
只要你连接的数据库用户可以访问两个表
-
也许我应该更具体地回答我的问题。我怎样才能实现我用 JPA 描述的内容?即使是原生查询也不适合我。
-
您必须有两个实体,每个表一个。您不能使用相同的实体
-
但是联合的结果不能是实体。
-
@SimonMartinelli 谢谢。我会试试的。
标签: hibernate jpa spring-data-jpa