java - 如何使用 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()
。
解决方案
推荐阅读
- typo3 - smartreach 错误调用成员函数
- php - APCu 数据是存储在硬盘还是内存中?
- android - 如何将第三方库引用添加到文档中
- flutter - RefreshIndicator 不适用于 FutureBuilder?
- javascript - Webpack 4 - 拆分块
- reactjs - Image Magic 字体不适用
- c# - 在本机 UWP 中,如何为字符串中的特定字符应用颜色或如何在文本框控件中显示多色文本
- ios - didSet 在 Swift 5 中进入无限循环
- sql - oracle sql中的行内视图可以在查询中包含“not in”子句吗?
- android - 如何在android中使用Firebase ML套件比较一个对象的两个图像