【问题标题】:Hibernate Foreign Table RelationHibernate 外部表关系
【发布时间】:2017-12-15 11:40:07
【问题描述】:

首先,我应该提一下,我们正在尝试保持新数据库的解耦,以避免将来创建一个单一的数据库。在我们的旧数据库中,我们有一个名为eventstub 的表,我需要从新数据库中访问它的数据。我正在使用Postgres 9.6.3,它允许postgres_fdw 扩展用于跨服务器创建外部表。这很管用。我目前的问题在于 Hibernate 无法验证这个外表的存在。有问题的确切错误是:

Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [eventstub]

我可以从新数据库中查询外部表,结果返回没有问题。由于我在堆栈中,我认为保留spring.jpa.hibernate.ddl-auto = validate 是明智的,因为我可能会在我的 JPA 关联中出错。在我的新数据库中,我有一个表Event,我用它来包装新数据以及对旧数据库中表的主键eventstub 的引用。我是这样定义这种关系的:

@NotNull
@OneToOne(targetEntity = EventStub.class)
@JoinTable(name = "eventstub", joinColumns = @JoinColumn(name = "ems_event", referencedColumnName = "id"))
private EventStub emsEvent;

当我更改spring.jpa.hibernate.ddl-auto = none 时,我没有问题。我可以很好地访问外部表。有谁知道是否可以以某种方式仅排除这一个表,以便可以验证其余模式?

【问题讨论】:

    标签: java postgresql hibernate spring-boot spring-data-jpa


    【解决方案1】:

    我找到了详细信息的答案here

    对于我的应用程序,设置 配置文件中的hibernate.hbm2dll.extra_physical_table_types: FOREIGN TABLE 成功了。

    如果您觉得这有帮助,请务必对原始答案进行投票:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-28
      相关资源
      最近更新 更多