📄 session-configuration.html
字号:
</p><pre class="programlisting">hibernate.connection.datasource = java:/comp/env/jdbc/MyDBhibernate.transaction.factory_class = \ net.sf.hibernate.transaction.JTATransactionFactoryhibernate.transaction.manager_lookup_class = \ net.sf.hibernate.transaction.JBossTransactionManagerLookuphibernate.dialect = \ net.sf.hibernate.dialect.PostgreSQLDialect</pre><p> 从JNDI数据源获得的JDBC连接自动具有应用服务器的容器管理事务的特性。 </p><p> 可以通过"<tt class="literal">hibernate.connnection</tt>"开头的属性来设置特别的连接属性。比如,你可以通过<tt class="literal">hibernate.connnection.charSet</tt>来指定<tt class="literal">charSet</tt>。 </p><p> 通过实现<tt class="literal">net.sf.hibernate.connection.ConnectionProvider</tt>接口,你可以定义如何获得JDBC连接的策略。你可以通过设置<tt class="literal">hibernate.connection.provider_class</tt>来选择一个自定义的实现。 </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="configuration-optional"></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="configuration-optional-properties"></a><p class="title"><b>表 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> Hibernate<tt class="literal">方言(Dialect)</tt>的类名 - 可以让Hibernate使用某些特定的数据库平台的特性 <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> 在生成的SQL中,scheml/tablespace的全限定名 <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> 自动把创建的<tt class="literal">SessionFactory</tt>以这个名字绑定到JNDI中去. <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> 允许使用外连接抓取。已经失效。请使用<tt class="literal">max_fetch_depth</tt>。 <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> 对单根联合(一对一,多对一),设置外连接抓取树的最大深度。如果是<tt class="literal">0</tt>将关闭默认的外连接抓取。 <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> 一个非零值,用来决定JDBC的获取量大小。(会调用<tt class="literal">Statement.setFetchSize()</tt>). </td></tr><tr><td><tt class="literal">hibernate.jdbc.batch_size</tt></td><td> 一个非零值,会开启Hibernate使用JDBC2的批量更新功能 <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> 允许Hibernate使用JDBC2提供的可滚动结果集。只有在使用用户自行提供的JDBC连接时,这个参数才是必需的。否则Hibernate会使用连接的元数据(metadata)。 <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> 在从JDBC读写<tt class="literal">binary(二进制)</tt>或者<tt class="literal">serializable(可序列化)</tt>类型时,是否使用stream(流). (这是一个系统级别的属性。) <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_get_generated_keys</tt></td><td> 允许使用JDBC3的<tt class="literal">PreparedStatement.getGeneratedKeys()</tt>在插入后获取数据库自身生成的key。需要JDBC3以上的驱动和JRE1.4以上,如果你的驱动和Hibernate关键字生成器一起使用有问题,请设为false。默认情况下,会用connection元数据根据驱动是否支持自动判断。 <p> <span class="strong">取值.</span> <tt class="literal">true|false</tt> </p></td></tr><tr><td><tt class="literal">hibernate.cglib.use_reflection_optimizer</tt></td><td> 是否使用CGLIB来代替运行时反射操作。(系统级别属性,默认为在可能时都使用CGLIB).在调试的时候有时候使用反射会有用。 <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> 把<tt class="literal">propertyName</tt>这个属性传递到JNDI <tt class="literal">InitialContextFactory</tt>去 (可选) </td></tr><tr><td><tt class="literal">hibernate.connection.isolation</tt></td><td> 事务隔离级别 (可选).请检查<tt class="literal">java.sql.Connection</tt>来得到取值的具体意义。注意大多数数据库不会支持所有的隔离级别。 <p> <span class="strong">取值.</span>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -