2017-02-17 16 views
1

У меня есть существующая таблица (давайте назовем это Билеты), и мне нужно иметь отношение много к одному в таблицу в другой базе данных (назовем эту транзакцию) , Я знаю, что невозможно иметь отношения «много-к-одному» в JPA, но то, что я ищу, - это подключение этих двух таблиц, не прибегая к JPA. Кроме того, объединение этих таблиц в один бит не является вариантом (в соответствии с запросом клиента).JPA: сопоставление многого к одному из таблицы в другой базе данных

Я здесь в затруднении.

+0

Добро пожаловать на SO. Можете ли вы показать нам какой-то код о том, что вы пробовали до сих пор? – Gray

ответ

0

Невозможно иметь отношения ManyToOne в JPA. Вот вам пример:

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 { 
... 
}