【发布时间】: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