0

我正在使用 hibernate-annotation (entitymanager) 来使用单独的模式来处理我的 db2 数据库。

我的主要模式称为“mainschema”。它有一个文件上传表。

然后我有一些其他模式(schema1、schema2、schema3、schemaN)。

如何告诉 schemaN 上的多对一关系以引用“mainschema”上的文件表。如果我打开连接,我会告诉使用哪个模式。但是多对一仍在使用该模式,并且文件上传表仅在“主模式”中可用

感谢帮助!

编辑:

我的文件上传休眠 bean 使用显式的主模式:

@Entity
@Table(name="DOKUMENT", schema="mainschema")

然后我为每个客户端都有一个模式,请看这里: 模式未在 bean 中设置。它是在打开连接的时间设置的。

@Entity
@Table(name="SOMETABLE")

此表“SOMETABLE”存在于每个客户端的每个模式中。它是指具有多对一的文档实体

@Many-To-One
@JoinColumn(name="DOKUMENT_ID")
public Dokument getDokument() { return dokument }
public void setDokument() { this.dokument = dokument }

问题可以关闭。它无需任何更改即可工作,因为hibernate仍在自动使用“mainschema”。

4

1 回答 1

1

这是如何将 SchemaN 映射到 MainSchema 一对多

@Entity
public class SchemaN{

    @OneToMany(targetEntity=MainSchema.class, mappedBy="pk_SchemaN")
    private List<MainSchema> ms;

...

}

@Entity
public class MainSchema{

     @ManyToOne
     @JoinColumn(name="FK_MainSchema")
     private SchemaN pk_schemaN;

...

}

希望这对您有所帮助,对于任何 Schema1 到 N 都应该是相同的

于 2013-04-15T10:55:22.933 回答