JPA:来自另一个数据库中的表的多对一映射

时间:2017-02-17 15:51:05

标签: java jpa

我有一个现有的表(让我们调用这个Tickets),我需要与另一个数据库中的表有多对一的关系(让我们调用这个Transaction)。我知道在JPA中建立多对一关系是不可能的,但我要找的是连接这两个表而不诉诸JPA。此外,将这些表合并到一个db不是一个选项(根据客户端请求)。

我在这里不知所措。

2 个答案:

答案 0 :(得分:0)

在JPA中拥有ManyToOne关系并非不可能。这里有一个例子:

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

关于如何使用两个数据库中的表来解决您的特定问题,您可以使用两个不同的数据源,或一个数据库上的视图,指向另一个数据库上的表。选择主要取决于您尝试连接的数据库的性质。

答案 1 :(得分:0)

扩展这个答案(As of yesterday the dagger.android Android helpers are released in version 2.10-rc1)我认为您需要做以下事情:

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