【发布时间】:2017-07-07 05:23:36
【问题描述】:
我有一个现有的表(我们称之为门票),我需要与另一个数据库中的表建立多对一关系(我们称之为事务)。我知道在 JPA 中不可能建立多对一的关系,但我正在寻找的是在不诉诸 JPA 的情况下连接这两个表。此外,将这些表合并到一个数据库不是一种选择(根据客户请求)。
我在这里不知所措。
【问题讨论】:
-
欢迎来到 SO。您能否向我们展示一些有关您迄今为止尝试过的代码?
我有一个现有的表(我们称之为门票),我需要与另一个数据库中的表建立多对一关系(我们称之为事务)。我知道在 JPA 中不可能建立多对一的关系,但我正在寻找的是在不诉诸 JPA 的情况下连接这两个表。此外,将这些表合并到一个数据库不是一种选择(根据客户请求)。
我在这里不知所措。
【问题讨论】:
扩展此答案 (JPA using multiple database schemas) 我认为您需要执行以下操作:
public class Schemas {
public static final String S1D="S1D";
public static final String S2D="S2D";
}
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "Tickets", schema=Schemas.S1D)
public class Tickets {
@ManyToOne
@JoinColumn(name = "transaction_id")
private Transaction transaction;
}
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "Transaction", schema=Schemas.S2D)
public class Transaction {
...
}
【讨论】:
在 JPA 中建立多对一关系并非不可能。这里有一个例子:
https://en.wikibooks.org/wiki/Java_Persistence/ManyToOne
关于如何使用两个数据库中的表来解决您的特定问题,您可以使用两个不同的数据源,或者一个数据库上的视图,指向另一个数据库上的表。选择主要取决于您尝试连接的数据库的性质。
【讨论】: