Hibernate映射关联到映射
hibernate的@OneToMany关联如何与java.util.Map类型一起工作?我也使用@MapKey 它是否首先加载查询结果集并遍历以在中创建关联对象 比如,; 我有一辆实体车 我还有另外一个特点 Car与CarFeatures@JoinColumn(“carId”)有一个Hibernate映射关联到映射,hibernate,one-to-many,hibernate-mapping,Hibernate,One To Many,Hibernate Mapping,hibernate的@OneToMany关联如何与java.util.Map类型一起工作?我也使用@MapKey 它是否首先加载查询结果集并遍历以在中创建关联对象 比如,; 我有一辆实体车 我还有另外一个特点 Car与CarFeatures@JoinColumn(“carId”)有一个@OneToMany,FetchType.LAZY关系。还包括带有注释的功能键@MapKey(“键”) 当我想在屏幕上列出所有的汽车,并在列表中列出一些功能时。我正在使用JOIN FETCH生成查询,以选择与car
@OneToMany,FetchType.LAZY
关系。还包括带有注释的功能键@MapKey(“键”)
当我想在屏幕上列出所有的汽车,并在列表中列出一些功能时。我正在使用JOIN FETCH生成查询,以选择与car关联的所有功能
检查了查询,似乎查询正在从car join with carfeatures中选择car.*和carfeature.
但是当清单上的汽车数量巨大时;加载结果集花费的时间太多
这就是为什么我想了解幕后发生了什么?就我所知
@OneToMany
关联,无论集合类型如何
它是否首先加载查询结果集并遍历以在中创建关联对象
是的,没错
但是当清单上的汽车数量巨大时;加载结果集花费的时间太多
那是因为你没有使用分页
检查了查询,似乎查询正在从与carfeatures关联的car中选择car.*和carfeature.*
是的,这正是JOIN FETCH所做的。它执行连接并投影从正在获取的父关联和子关联的所有内容
Hibernate获取结果集结果集中的每一行都包含car及其“一”特性。意味着如果一辆车有20个功能。结果集中每辆车将有20行
对。如果您有N辆车,并且每辆车都有M个特征,那么结果集将包含N x M个记录
我的理解正确吗?如果是,我如何有效地选择汽车及其功能
当然,有办法。只需使用分页,如中所述
我计划做的一件事是;跳过features表并创建一列Varchar以手动整理/取消整理features as list
这听起来像是一个不需要的黑客。只需使用分页,不要仅针对一个不使用分页的查询对模式进行非规范化,当然,出于这个原因,查询速度很慢
hibernate的@OneToMany关联如何与java.util.Map类型一起工作?我也使用@MapKey
Hibernate以相同的方式加载所有@OneToMany
关联,无论集合类型如何
它是否首先加载查询结果集并遍历以在中创建关联对象
是的,没错
但是当清单上的汽车数量巨大时;加载结果集花费的时间太多
那是因为你没有使用分页
检查了查询,似乎查询正在从与carfeatures关联的car中选择car.*和carfeature.*
是的,这正是JOIN FETCH所做的。它执行连接并投影从正在获取的父关联和子关联的所有内容
Hibernate获取结果集结果集中的每一行都包含car及其“一”特性。意味着如果一辆车有20个功能。结果集中每辆车将有20行
对。如果您有N辆车,并且每辆车都有M个特征,那么结果集将包含N x M个记录
我的理解正确吗?如果是,我如何有效地选择汽车及其功能
当然,有办法。只需使用分页,如中所述
我计划做的一件事是;跳过features表并创建一列Varchar以手动整理/取消整理features as list
这听起来像是一个不需要的黑客。只需使用分页,不要仅为一个不使用分页的查询取消模式规范化,当然,由于这个原因,查询速度很慢。再次感谢您的精彩回答,也感谢您的文章链接。但是在这个已经完成了大量工作的项目中;我没有机会,只能按你说的去做。乱劈我唯一的问题;是否可以使用类型实用程序将json转换为列(varchar)。由于DB版本不支持JSON列类型。如果要在VARCHAR中存储JSON数据,只需使用
String
entity属性并存储JSON字符串表示形式。回到远古时代。但这就是现在必须做的。我一直计划包括一个可重用的和通用的,因为它可以-这不是现在-。最终,这不是一个产品,而是一个解决方案和客户特定性如果它是客户特定的,那么就没有什么可担心的了。如果它是一个产品,那么您必须编写自己的自定义类型,以将JSON保存到VARCHAR或JSON特定列。如果您研究hibrnate类型
项目,您将了解如何做到这一点。谢谢!经历这一次,;很好,再次感谢你的回答,也感谢你的文章链接。但是在这个已经完成了大量工作的项目中;我没有机会,只能按你说的去做。乱劈我的o