在休眠documenation给出了一些Hibernate配置属性.其中,
hibernate.max_fetch_depth
为单端关联(一对一,多对一)设置外连接提取树的最大"深度".A 0禁用默认外部联接提取.例如0到3之间的推荐值
了hibernate.default_batch_fetch_size
设置Hibernate批量提取关联的默认大小.例如,推荐值4,8,16
我是Hibernate的新手,有人可以通过一个例子来帮助我理解这一点.
提前致谢.
Maa*_*els 16
max_fetch_depth:想象一个人和一个地址实体.每个人住在一个地址(非常简单的系统),但很多人可能住在同一个地址.在对象模型中,Person可能具有地址属性.这将被映射为多对一(如文档所述).现在,当从数据库中获取Person时,hibernate会遇到此属性.在数据库中,它是一个带有Address表的外键的列.要获取关联对象,可以使用此表的连接.生成的数据将用于填充将在person上的address属性上设置的Address对象.从这个意义上讲,Hibernate在获取对象时遍历对象图.现在,如果地址有一个房产城?这也是多对一的,并且会通过相同的逻辑导致连接.如果City有房产国家怎么办?一样.做很多连接会对性能造成不利影响.在某些时候,最好是单独选择,从缓存中获取数据或注入代理.此配置属性确定在获取数据时hibernate将通过连接遍历的关联数.
default_batch_fetch_size:这是一个非常低级别的属性,用于确定在查询集合关联时Hibernate将请求JDBC驱动程序获取/加载的行数.如果您要查询一个国家/地区的所有城市(上一个示例),那么通过JDBC连接批量加载数据,将数据作为对象跨越并进入内存的过程将更加简化.与环相比,查询将执行我们的应用程序来处理数据,但是,它通常是无关紧要的.将配置属性保留为默认值通常是正确的.
| 归档时间: |
|
| 查看次数: |
14404 次 |
| 最近记录: |