我有兩張表,我想在Hibernate/Spring中將它視爲單個模型類,但是他們唯一的關係可以通過第三個表建立。例如...在單個模型中的第三個表上連接兩個表Hibernate Spring
tableA {
id integer <PK>
username varchar2(25 byte)
}
tableB {
personID varchar2(15 byte) <PK>
divisionID integer
positionID integer
}
tableC {
personID varchar2(10) <FK>
username varchar2(25 byte)
}
雖然這將是非常好的,簡單的添加PERSONID作爲tableA的列,情況不允許。我會,不過,想與這些表在Hibernate中使用一個模型,比如下面的一個互動......
@Entity
@Table(name="tableA")
public class myTable {
@Id
@GeneratedValue
private int id;
private String username;
@Formula("(select distinct tableC.personID from tableC where upper(tableC.username) = upper(THIS_.username) and tableC.personID is not null)")
String personID;
@Formula("(select distinct tableB.divisionID from tableB where tableB.personID = THIS_.personID)")
int divisionID;
@Formula("(select distinct tableB.oositionID from tableB where tableB.personID = THIS_.personID)")
int positionID;
//getters, setters, etc...
}
我知道,我已經在這裏寫的方式是不可能的,我只是想傳達這個想法。當我稍後保存或更新數據庫時,我希望Hibernate能夠更新每個屬性出現的相應表。
我已經探索過使用@Transient,@SecondaryTables和其他幾個,但我還沒有找到一個好方法來完成這項工作。是否有可能以我想要的方式做到這一點?如果是這樣,我應該使用什麼方法/註釋?如果不是,我應該採取什麼替代方法?我對Hibernate和Spring相對來說比較新,所以請耐心等待。
在試圖讓我的問題那麼簡單,我可能過於簡化。這只是Hibernate迄今非常有用的一個更大的Web應用程序的一個組件。 – hartz89
你不必爲所有事情都使用Hibernate。如果你沒有映射到你的域中的模型對象,我會說Hibernate不適用。 – duffymo