首页 > 解决方案 > 如何使用 JPA 和休眠进行可选的一对一映射并避免 N+1 选择?

问题描述

我想使用 JPA 对可选的一对一映射进行建模。

tableA有一个列(flag),当那是true我需要从另一个中选择其他数据tableB来获取一个字符串时。

tableB 对 tableA 的 pk 有一个 fk。

到目前为止,我对这个映射进行了分层,但 hibernate 默认为 tableB 进行了额外的选择。当我访问到 tableB 的映射时,我只想要那些。

类表A

@OneToOne(mappedBy= tableA_id, fetch = FetchType.LAZY, optional = true)
private TableB tableB;

类表B

@OneToOne(mappedBy= tableA_id, fetch = FetchType.LAZY, optional = true)
@JoinColumn(name = "TABLEA_ID"
private TableA tableA

结果是我 em.createQuery("from TableA")什至在访问之前就从 tableB 上得到了选择getTableB()

标签: javahibernatejpa-2.0

解决方案


推荐阅读