我在以下声明了实体
@Entity
@Table(name = "table_a")
public class TableA extends AbstractEntity{
...
......
........
@OneToMany(
orphanRemoval = false,
mappedBy = "tableA",
fetch = FetchType.LAZY
)
@BatchSize(size = 10000)
private List<TableB> tabelB = new ArrayList<>();;
}
第二张表如下:
@Entity
@Table(name = "table_b")
public class TableB extends AbstractEntity{
...
......
........
@ManyToOne
@JoinColumn(name = "id")
private TableA tableA;
@ManyToOne
@JoinColumn(name = "id")
private TableC tableC;
}
下面的第三个表没有关联作为属性:
@Entity
@Table(name = "table_c")
public class TableC extends AbstractEntity{
...
....
.....
}
现在,当我检查 JPA 日志时没有批量选择,并且当我执行以下操作时,所有 table_c 查询都是单选查询:
for (TableB tableB : tableA.getTableB()) {
// some logic
}
在日志中有 TableB 的批量选择语句,但 TableC 有单个选择语句。
我在这里缺少一些基本概念,请帮助我识别。我尝试在 TableB 实体类中为 TableC ManytoOne 关联添加 FetchType Lazy 和批量大小,但没有奏效。