首先,我需要提到我们正在尝试保持新数据库的解耦,以避免在未来创建一个单体数据库。在我们的传统数据库中,有一个名为 eventstub
的表格,我需要从新数据库中访问其中的数据。我使用的是 Postgres 9.6.3
,它允许使用 postgres_fdw
扩展在服务器之间创建外部表格。这部分已经成功运行。我的当前问题在于Hibernate无法验证该外部表格的存在。具体的错误如下:
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [eventstub]
我可以从新的数据库中查询外部表,并成功返回结果。由于我使用的是stack技术,我认为保持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
时,没有任何问题。我可以很好地访问外键表。是否有人知道是否可能仅排除此一个表,以便验证其余模式?