2
我通過JPA使用Hibernate's multi-tenancy功能,使用database per tenant strategy。我的一個要求是能夠針對每個數據庫中存在的表運行查詢,但明顯使用不同的數據。這可能嗎?使用Hibernate多租戶的分佈式查詢
提前感謝您的時間。
我通過JPA使用Hibernate's multi-tenancy功能,使用database per tenant strategy。我的一個要求是能夠針對每個數據庫中存在的表運行查詢,但明顯使用不同的數據。這可能嗎?使用Hibernate多租戶的分佈式查詢
提前感謝您的時間。
沒有。這是不可能的,因爲當hibernate運行查詢時,它已經用連接初始化了。 Hibernate中的MT支持基本上是在Hibernate之外進行的。這是一種適當的連接提供休眠,當它餵養:)它是綁定到該連接。
如果您需要跨租戶查詢,您可能需要重新考慮多租戶或將JPA提供程序更改爲支持「共享模式方法」的JPA提供程序,例如的EclipseLink。對於共享瑪接近你有兩個選擇:
Hi Tomasz。謝謝你的回覆。我無法使用共享模式方法,因爲我計劃在負載增加時將數據移動到物理服務器上。 –
可能有一種解決方法:迭代租戶和每個租戶:1.將其設置爲當前租戶,2.啓動事務,3.執行您的查詢和4.結束事務。我沒有用Hibernate測試過,但是通過EclipseLink,我能夠再次查詢租戶自己的數據。 –
是的,如果我找不到更優雅的解決方案,那最終會這樣做。謝謝你的幫助。 –