java - 在 DB2 上使用其他模式的 Hibernate 多对一

标签 java hibernate hibernate-annotations

我正在使用 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/

相关文章:

java - 如何在 Java 中有条件地(通过字符串)创建实例?

java - Hibernate Cascade 来自另一个数据库的另一个 ID

java - manytomany 检索条件

java - Springs3 Hibernate3注解配置

java - hibernate-core 和 hibernate-annotation - 冲突

java - <上下文:componentscan> how does it work?

java - 流 API map() 和 filter()

java - REST Jersey 导致 HTTP 状态 500 - 内部服务器错误

java - 如何在 char 字段上使用 Spring/Hibernate 验证?

java - hibernate/C3P0 : Server crashes after MySQL timeout