java – 了解Hibernate的hibernate.max_fetch_depth和hibernate.
Hibernate documenation给出了一些Hibernate的配置属性.其中,
我是Hibernate的新人,有人可以帮助我理解这一点. 提前致谢. 解决方法
max_fetch_depth:
想象一个人和地址实体.每个人都住在一个地址(非常简单的系统),但是很多人可能住在同一个地址.在对象模型中,Person可能有一个address属性.这将被映射为多对一(如文档所述). 现在从数据库中获取一个Person时,hibernate会遇到这个属性.在数据库中,它是一个具有外键的地址表的列.要获取关联对象,可以使用此表的连接.生成的数据将用于填充将在该人员的地址属性上设置的Address对象.在这个意义上,Hibernate在获取对象时遍历对象图. 现在如果地址有一个财产城市?这也将是一对一的,并且将导致相同逻辑的加入.如果城市有财产国家?一样. 做很多连接对于表演来说是不好的.在某种程度上,最好做一个单独的选择,从缓存获取数据或注入代理.此配置属性确定在获取数据时,hibernate将通过连接遍历多少个关联. default_batch_fetch_size:这是一个非常低级别的属性,用于确定在查询集合关联时,Hibernate将请求JDBC驱动程序获取/加载多少行.如果您要查询一个国家/地区的所有城市(上一个例子),那么通过JDBC连接分批加载数据,将数据跨越内存作为对象进行更精简的过程.与环相比,查询将执行我们的应用程序来处理数据,然而,它通常是微不足道的.将配置属性保留为默认值通常是正确的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |