技术: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