2017-02-17 58 views
1

我有一個現有的表(我們稱之爲Tickets),並且我需要在另一個數據庫中有一個多對一的關係(我們稱之爲Transaction) 。我知道在JPA中不可能有多對一的關係,但是我正在尋找的是連接這兩個表而不使用JPA。另外,將這些表合併到一個數據庫不是一個選項(按照客戶端請求)。JPA:在另一個數據庫中的表與多對一映射

我在這裏不知所措。

+0

歡迎SO。你能向我們展示一些關於迄今爲止嘗試過的代碼嗎? – Gray

回答

0

在JPA中擁有ManyToOne關係並不是不可能的。這裏有一個例子:

https://en.wikibooks.org/wiki/Java_Persistence/ManyToOne

關於如何解決使用表格您的具體問題在兩個數據庫,你可以使用兩個不同的數據源,或者對數據庫的一個視圖,指着桌子上另一個。選擇主要取決於您嘗試連接的數據庫的性質。

+0

您將使用什麼特定技術來實現跨數據庫視圖?考慮到沒有使用實際數據庫的知識。 – Kayaman

+0

這取決於正在使用的數據庫,但這不是一個不尋常的解決方案。 – Andres

+0

特別容易實現,例如,你正在使用兩個不同的Oracle實例。 – Andres

0

擴展在這個答案(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 { 
... 
}