我正在使用 hibernate-annotation (entitymanager) 来使用单独的模式处理我的 db2 数据库。
我的主模式称为“mainschema”。它有一个文件上传表。
然后我有一些其他架构(schema1、schema2、schema3、schemaN)。
如何告诉 schemaN 上的多对一关系来引用“mainschema”上的文件表。如果我打开连接,我会告诉要使用哪个模式。但多对一仍在使用该架构,并且文件上传表仅在“主架构”中可用
感谢您的帮助!
编辑:
我的 fileupload hibernate 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”。
最佳答案
这是如何将 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 应该是相同的
关于java - 在 DB2 上使用其他模式的 Hibernate 多对一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16013198/