如何让Camel JPA使用非默认的数据库模式?

编程语言 2026-07-09

我有一个带有命名查询的路由

.to("jpa://com.example.MyEntity?namedQuery=MyEntity.findAllRelevant")

以及一个在不同登录方案下的实体

@Entity
@Table(
    name = "V_MY_ENTITY",
    schema = "DIFFERENT_SCHEMA"
)
@Immutable
@NamedQueries({@NamedQuery(
    name = "MyEntity.findAllRelevant",
    query = "select m from MyEntity m where m.relevant = 1"
)})
public class MyEntity{

以及相关配置

spring.jpa.properties.hibernate.default_schema=MY_SCHEMA

现在出现

由错误引起:942,位置:653,SQL = select ... from MY_SCHEMA.v_my_entity ..., 原始SQL = select ... from MY_SCHEMA.v_my_entity ..., 错误信息 = ORA-00942: table or view does not exist

at oracle.jdbc.driver.T4CTTIoer11#processError[723]

尽管在实体上为查询设置了 different_schema

如何让camel-jpa使用不同于默认模式的架构?

解决方案

变通方法是在 MY_SCHEMA 内创建一个同义词,使其指向 DIFFERENT_SCHEMA

create synonym v_my_entity for different_schema.v_my_entity;
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章