2016-06-02 15 views
9

Trong một dự án Spring Boot ứng dụng, tôi có 2 nguồn dữ liệu:liệu mùa xuân: mối quan hệ giữa 2 nguồn dữ liệu khác nhau

  • một cơ sở dữ liệu MySQL (aka "db1")
  • một cơ sở dữ liệu MongoDB (aka "db2 ")

tôi đang sử dụng mùa xuân dữ liệu JPAmùa xuân dữ liệu MongoDB, và nó làm việc tuyệt vời ... cùng một lúc.

Nói db1 xử lý "Người chơi" và db2 xử lý "Nhóm" (có danh sách ID người chơi). Có thể làm cho mối quan hệ giữa hai thực thể không đồng nhất đó hoạt động không? (Ví dụ @ManyToOne, @Transactional, Lazy/Háo hức, vv)

Ví dụ, tôi muốn để có thể viết:

List<Player> fooPlayers = teamDao.findOneById(foo).getPlayers(); 

EDIT: Nếu có thể, tôi muốn tìm một giải pháp làm việc với bất kỳ dự án dữ liệu mùa xuân nào

+3

Làm thế nào để làm điều đó chỉ đơn giản là giải thích trong [tham khảo hướng dẫn] (http://docs.spring.io /spring-data/data-mongo/docs/1.9.2.RELEASE/reference/html/#mongo.cross.store) –

+0

Chú thích @RelatedDocument rất hay, nhưng nó chỉ hoạt động một chiều. Bên cạnh đó, nó chỉ hoạt động với MongoDB (tôi sẽ chỉnh sửa câu hỏi của mình để nói rằng tôi muốn một giải pháp hoạt động với bất kỳ dự án dữ liệu nào) – Nicolas

+0

Không có giải pháp nào hoạt động bất kể công nghệ. Câu hỏi của bạn là về Spring Data JPA và Spring Data MongoDB. Giải pháp đó được ghi chép rõ ràng. Sự hỗ trợ qua cửa hàng về cơ bản là chung chung và có thể được mở rộng cho bất cứ điều gì nhưng điều đó đòi hỏi công việc về phía bạn. –

Trả lời

2

Thật không may là câu hỏi hóc búa của bạn không có giải pháp nào trong dữ liệu mùa xuân.

khả năng là bạn tạo một lớp giao diện (DAO) của riêng bạn. Lớp DAO đó sẽ có các triển khai để truy vấn cả hai DB của bạn. Một ví dụ rất thô và ngắn sẽ

your DAO 
{ 
    yourFind (id) 
    { 
     this would find in db2 and return a relevant list of objects 
     findOneByID(id) 
     get the player from the above retrieved list and query db1 
     getPlayer(player) 
    } 
} 

tôi hy vọng điều này chỉ bạn đi đúng hướng

Các vấn đề liên quan