【发布时间】:2021-02-11 08:43:26
【问题描述】:
我正在对 Oracle 数据库使用 Spring JPA,我希望能够跨 2 个不同的模式/数据库(例如 db1.car 和 db2.car)查询同一个表。
我的域对象会非常标准,如下所示。有没有办法通过控制器将 schema/db 限定符传递给域对象,如果说我有一个 db1.car 表和一个和 db2.car 表?
@Entity
@Table(name = "car")
public class Car {
...
}
或者,有没有办法将限定的表名传递给命名查询?似乎不是,因为这似乎不起作用(即,“:qualifiedcar”会导致 Spring 自动装配错误):
public interface CarRepository extends JpaRepository<Person, String> {
@Query("select p from :qualifiedcar p where p.type in (:type)")
List<Person> findByQualifiedPersonAndType(@Param("qualifiedcar") String qualifiedcar, @Param("type") String type);
}
为了澄清,也许 Oracle 不使用术语 schema。将它们称为不同的数据库可能更准确。
【问题讨论】: