📄 session-configuration.html
字号:
</p><div class="table"><a name="d0e838"></a><p class="title"><b>Table 3.2. Hibernate 数据源(Datasource)属性</b></p><table summary="Hibernate 数据源(Datasource)属性" border="1"><colgroup><col><col></colgroup><thead><tr><th>属性名</th><th>用途</th></tr></thead><tbody><tr><td><tt class="literal">hibernate.connection.datasource</tt></td><td><span class="emphasis"><em>datasource JNDI 名字</em></span></td></tr><tr><td><tt class="literal">hibernate.jndi.url</tt></td><td><span class="emphasis"><em>JNDI 提供者的URL</em></span> (可选) </td></tr><tr><td><tt class="literal">hibernate.jndi.class</tt></td><td><span class="emphasis"><em>JNDI <tt class="literal">InitialContextFactory</tt>的类名</em></span> (可选) </td></tr><tr><td><tt class="literal">hibernate.connection.username</tt></td><td><span class="emphasis"><em>数据库用户名</em></span> (可选) </td></tr><tr><td><tt class="literal">hibernate.connection.password</tt></td><td><span class="emphasis"><em>数据库密码</em></span> (可选) </td></tr></tbody></table></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="session-configuration-s5"></a>3.5. 其它配置属性</h2></div></div><div></div></div><p> 下面是一些在运行时可以改变Hibernate行为的其他配置。所有这些都是可选的,也有合理的默认值。 </p><p> 系统级别的配置只能通过<tt class="literal">java -Dproperty=value</tt>或者在<tt class="literal">hibernate.properties</tt>文件中配置,而不能通过传递给<tt class="literal">Configuration</tt>的<tt class="literal">Properties</tt>实例来配置。 </p><div class="table"><a name="d0e913"></a><p class="title"><b>Table 3.3. Hibernate配置属性</b></p><table summary="Hibernate配置属性" border="1"><colgroup><col><col></colgroup><thead><tr><th>属性名</th><th>用途</th></tr></thead><tbody><tr><td><tt class="literal">hibernate.dialect</tt></td><td><span class="emphasis"><em>Hibernate<tt class="literal">方言(Dialect)</tt>的类名 - 可以让Hibernate使用某些特定的数据库平台的特性</em></span><p> <span class="strong">取值.</span> <tt class="literal">full.classname.of.Dialect</tt> </p></td></tr><tr><td><tt class="literal">hibernate.default_schema</tt></td><td><span class="emphasis"><em>在生成的SQL中,scheml/tablespace的全限定名</em></span><p> <span class="strong">取值.</span> <tt class="literal">SCHEMA_NAME</tt> </p></td></tr><tr><td><tt class="literal">hibernate.session_factory_name</tt></td><td><span class="emphasis"><em>把<tt class="literal">SessionFactory</tt>绑定到JNDI中去.</em></span><p> <span class="strong">取值.</span> <tt class="literal">jndi/composite/name</tt> </p></td></tr><tr><td><tt class="literal">hibernate.use_outer_join</tt></td><td><span class="emphasis"><em>允许使用外连接抓取.</em></span><p> <span class="strong">取值.</span> <tt class="literal">true</tt> | <tt class="literal">false</tt> </p></td></tr><tr><td><tt class="literal">hibernate.max_fetch_depth</tt></td><td><span class="emphasis"><em>设置外连接抓取树的最大深度</em></span><p> <span class="strong">取值.</span> 建议设置为<tt class="literal">0</tt>到<tt class="literal">3</tt>之间 </p></td></tr><tr><td><tt class="literal">hibernate.jdbc.fetch_size</tt></td><td><span class="emphasis"><em>一个非零值,用来决定JDBC的获取量大小。(会调用calls <tt class="literal">Statement.setFetchSize()</tt>).</em></span></td></tr><tr><td><tt class="literal">hibernate.jdbc.batch_size</tt></td><td><span class="emphasis"><em>一个非零值,会开启Hibernate使用JDBC2的批量更新功能</em></span><p> <span class="strong">取值.</span> 建议值在 <tt class="literal">5</tt> 和 <tt class="literal">30</tt>之间。 </p></td></tr><tr><td><tt class="literal">hibernate.jdbc.use_scrollable_resultset</tt></td><td><span class="emphasis"><em>允许Hibernate使用JDBC2提供的可滚动结果集。只有在使用用户自行提供的连接时,这个参数才是必需的。否则Hibernate会使用连接的元数据(metadata)。</em></span><p> <span class="strong">取值.</span> <tt class="literal">true</tt> | <tt class="literal">false</tt> </p></td></tr><tr><td><tt class="literal">hibernate.jdbc.use_streams_for_binary</tt></td><td><span class="emphasis"><em>在从JDBC读写<tt class="literal">binary(二进制)</tt>或者<tt class="literal">serializable(可序列化)</tt>类型时,是否使用stream(流)</em></span>. 这是一个系统级别的属性。 <p> <span class="strong">取值.</span> <tt class="literal">true</tt> | <tt class="literal">false</tt> </p></td></tr><tr><td><tt class="literal">hibernate.cglib.use_reflection_optimizer</tt></td><td><span class="emphasis"><em>是否使用CGLIB来代替运行时反射操作。(系统级别属性,默认为在可能时都使用CGLIB).在调试的时候有时候使用反射会有用。</em></span><p> <span class="strong">取值.</span> <tt class="literal">true</tt> | <tt class="literal">false</tt> </p></td></tr><tr><td><tt class="literal">hibernate.jndi.<span class="emphasis"><em><propertyName></em></span></tt></td><td><span class="emphasis"><em>把<tt class="literal">propertyName</tt>这个属性传递到JNDI <tt class="literal">InitialContextFactory</tt>去</em></span> (可选) </td></tr><tr><td><tt class="literal">hibernate.connection.isolation</tt></td><td><span class="emphasis"><em>事务隔离级别</em></span> (可选) <p> <span class="strong">取值.</span> <tt class="literal">1, 2, 4, 8</tt> </p></td></tr><tr><td><tt class="literal">hibernate.connection.<span class="emphasis"><em><propertyName></em></span></tt></td><td><span class="emphasis"><em>把 <tt class="literal">propertyName</tt>这个JDBC 属性传递到<tt class="literal">DriverManager.getConnection()</tt>去</em></span>. </td></tr><tr><td><tt class="literal">hibernate.connection.provider_class</tt></td><td><span class="emphasis"><em>指定一个自定义的<tt class="literal">ConnectionProvider</tt>类名</em></span><p> <span class="strong">取值.</span> <tt class="literal">classname.of.ConnectionProvider</tt> </p></td></tr><tr><td><tt class="literal">hibernate.cache.provider_class</tt></td><td><span class="emphasis"><em>指定一个自定义的<tt class="literal">CacheProvider</tt>缓存提供者的类名</em></span><p> <span class="strong">取值.</span> <tt class="literal">classname.of.CacheProvider</tt> </p></td></tr><tr><td><tt class="literal">hibernate.cache.use_minimal_puts</tt></td><td><span class="emphasis"><em> 优化第二层缓存操作,减少写操作,代价是读操作更频繁(对于集群缓存很有用) </em></span><p> <span class="strong">取值.</span> <tt class="literal">true|false</tt> </p></td></tr><tr><td><tt class="literal">hibernate.cache.use_query_cache</tt></td><td><span class="emphasis"><em> 打开查询缓存 </em></span><p> <span class="strong">取值.</span>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -