首先,我应该提一下,我们正试图将新数据库分离,以避免将来创建一个单片数据库。在我们的遗留数据库中,我们有一个名为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
时,我没有任何问题。我可以访问外国表就好了。有谁知道是否有可能以某种方式只排除这一个表,所以可以验证模式的其余部分?