技術:Hibernate的3.0休眠:子ID檢索列表父
假設我有實體類公司
@Entity
@Table(name="tbl_companies")
public class Company
{
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
int id;
@Column(name="name")
String companyName;
@OneToMany(mappedBy = "company")
List<Employees> empList;
@OneToMany(mappedBy = "company")
List<Projects> projectList;
@OneToMany(mappedBy = "company")
List<Department> deptList;
@OneToMany(mappedBy = "company")
List<Branch> branchList;
}
在實體公司,是由Hibernate註釋映射到數據庫中包含的其他實體的名單與之相關。由於這些實體的對象如分支,項目,員工本身都是沉重的對象,因此它會使公司對象非常沉重並且包含幾乎全部的數據庫數據。避免這種情況的一種方法是使用延遲加載。另一種方法可以是使用List branchIdList,List projectIdList是對象的ID列表。我的問題是哪種方法是標準做法,更適合在這種情況下使用。更好地使用包括像內存方面的性能,主要是程序員的靈活性(第一個是程序員靈活,第二個使用更少的內存)。另一個問題是,如果我使用第二種方法,註釋中會有什麼變化。我懷疑hibernate是否支持id列表或只支持完整的對象。
感謝
其他
「使用ORM的全部意義在於,DB中通過外鍵互相鏈接的行可以表示爲通過常規Java引用和集合鏈接的對象。」這就是我認爲這就是爲什麼我不願意使用第二種方法。但是,如果有人想實施第二種方法,註釋中應該改變什麼? – 2010-12-15 05:17:16
http:// stackoverflow。com/questions/4415260/hibernate-ternary-association-mapping如果可能,請回答這個問題。 – 2010-12-15 05:18:08