【发布时间】:2014-09-03 00:27:26
【问题描述】:
我正在使用遗留代码。我有entity A 和entity B 类,但是因为entity B 被很多地方引用,我尽量不对entity B 进行更改。以下是这两个实体的类。
Entity B 有一个外键列,它是entity A 的主键,在数据库表中,外键(aId) 与表b(id) 的许多主键相关联。
我需要的是 A 的集合(例如,ID 范围在 1 - 10000 之间),其中包括当我对 table_a 进行查询时对应于辅助的 B 的集合。当前的实现是首先获取 A 的集合(具有大量行),然后遍历集合中的每个 A,然后调用 dao.findB(aId) 为 A 设置 B 的集合。这会导致多次访问数据库。我尽量减少这次旅行。例如,如果 A 有 50,000 行,dao.findB(aId) 将被调用 50,000 次。
table_b
----------
id table_a_id
1 2
2 2
3 2
4 3
5 3
@Entity
@Table(name = "table_a")
public class A{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
private Long id;
}
@Entity
@Table(name = "table_b")
public class B{
private static final long serialVersionUID = 1L;
@Id
@Column(name="id", unique = true, nullable = false)
@GeneratedValue
private Long id;
@Column(name="table_a_id")
private Long aId;
}
【问题讨论】:
标签: hibernate jpa-2.0 hibernate-mapping hibernate-criteria