Hibernate外表关系

时间:2017-07-11 12:01:08

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

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

0 个答案:

没有答案