hibernate - 带有@MapsId 的单向@OneToOne 不适用于延迟加载
问题描述
我想@OneToOne
使用 Hibernate 5.3.10 和 JPA 映射关联。
我知道@OneToOne
在不使用字节码增强时不能延迟加载关联的父端。
在这种情况下,我只想映射客户端并使用@MapsId
此处建议的关联:Best way to map onetoone
这是我在客户端的映射。父方CardEntity
根本没有映射到DeviceType
。
public class DeviceType {
@Id
@Column( name = "PRODUCT_CARD_TYPE_ID" )
private Long cardTypeId;
...
@OneToOne( fetch = FetchType.LAZY )
@MapsId
@JoinColumn( name = "PRODUCT_CARD_TYPE_ID" )
private CardEntity card;
....
}
我给它一个额外的@JoinColumn
,因为 KEY 列的CardEntity
名称与"PRODUCT_CARD_TYPE_ID"
. 请参阅更改 ID 列
对于此映射,LAZY
加载不起作用。它总是执行另一个语句来获取CardEntity
. 我在这里做错了什么?
解决方案
看起来这是HHH-12842。所描述的方法在休眠 5.4 中完美运行。但它在 hibernate 5.3 分支中不起作用。
推荐阅读
- python - 在出现整数的地方,有什么方法可以在 Python 中拆分字符串?
- android - 这里的语法错误到底是什么?使用原始查询我想检查数据库中是否存在电子邮件和密码
- c++ - 我在获取在 Vulkan 中工作的辐照度图时遇到了一些问题
- python-3.x - testing.postgresql 无法找到 initdb 命令,即使安装并运行了 postgress
- xamarin - 当注释的位置在自定义地图 Xamarin.Android 上可见时调用方法
- python - JSON 到 parquet 转换或不转换
- java - 我在 leetcode 的回文问题上使用了这个,它仍然说 10 的输出是真的
- mysql - 使用另一个表中的值有条件地插入到表中
- r - 将 R 中的 MLE 和 NLS 函数用于非线性模型
- php - 如何将嵌套数组变成单层并保留键