我必須在遺留數據庫中應用JPA,並採用可怕的設計。不幸的是不可能改變它。幸運的是隻用於只讀訪問。@ManyToMany無連接表(遺留數據庫)
我發現的最奇怪的事情之一是沒有連接(或中間)表的「多對多」關係。這是表結構的簡化:
USER ACCESS
---- ------
ID int primary key ID int primary key
NAME varchar2(20) NAME varchar2(20)
ACCESS_GROUP int ACCESS_GROUP int
- ACCESS_GROUP列可以兩個表
- 一個用戶可以與N個存取
- 一個接入可以與n個用戶在重複
「概念」 這個表必須用Java類映射是這樣的:
public class User {
private Integer id;
private String name;
@ManyToMany private List<Access> accessList;
}
public class Access {
private Integer id;
private String name;
@ManyToMany private List<User> userList;
}
但我認爲這是不可能的。您認爲在JPA中訪問這些表格並瀏覽它們的最佳方法是什麼?
其實,這不是A M:M。如何存儲用戶或訪問行是兩個訪問組的一部分?實現這一目標的唯一方法是複製其他列(PK除外),在這種情況下,從設計的角度來看,它們是不同的實體。相反,你擁有兩個獨立的1:M關係。 – Thomas 2011-03-23 18:29:53