📄 session-configuration.html
字号:
</p><a name="c3p0-configuration"></a><pre class="programlisting">hibernate.connection.driver_class = org.postgresql.Driverhibernate.connection.url = jdbc:postgresql://localhost/mydatabasehibernate.connection.username = myuserhibernate.connection.password = secrethibernate.c3p0.min_size=5hibernate.c3p0.max_size=20hibernate.c3p0.timeout=1800hibernate.c3p0.max_statements=50hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect</pre><p> 为了能在应用程序服务器(application server)中使用Hibernate, 应当总是将Hibernate 配置成从注册在JNDI中的<tt class="literal">Datasource</tt>处获得连接,你至少需要设置下列属性中的一个: </p><div class="table"><a name="d0e2088"></a><p class="title"><b>表 3.2. 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.connection.datasource</tt></td><td><span class="emphasis"><em>数据源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><p> 这是一个使用应用程序服务器提供的JNDI数据源的<tt class="literal">hibernate.properties</tt>样例文件: </p><pre class="programlisting">hibernate.connection.datasource = java:/comp/env/jdbc/testhibernate.transaction.factory_class = \ org.hibernate.transaction.JTATransactionFactoryhibernate.transaction.manager_lookup_class = \ org.hibernate.transaction.JBossTransactionManagerLookuphibernate.dialect = org.hibernate.dialect.PostgreSQLDialect</pre><p> 从JNDI数据源获得的JDBC连接将自动参与到应用程序服务器中容器管理的事务(container-managed transactions)中去. </p><p> 任何连接(connection)属性的属性名都要以"<tt class="literal">hibernate.connnection</tt>"开头. 例如, 你可能会使用<tt class="literal">hibernate.connection.charSet</tt>来指定字符集<tt class="literal">charSet</tt>. </p><p> 通过实现<tt class="literal">org.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.4. 可选的配置属性 </h2></div></div><div></div></div><p> 有大量属性能用来控制Hibernate在运行期的行为. 它们都是可选的, 并拥有适当的默认值. </p><p> <span class="emphasis"><em>警告: 其中一些属性是"系统级(system-level)的".</em></span> 系统级属性只能通过<tt class="literal">java -Dproperty=value</tt>或 <tt class="literal">hibernate.properties</tt>来设置, 而<span class="emphasis"><em>不能</em></span>用上面描述的其他方法来设置. </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针对特定的关系数据库生成优化的SQL. <p> <span class="strong">取值</span> <tt class="literal">full.classname.of.Dialect</tt> </p></td></tr><tr><td><tt class="literal">hibernate.show_sql</tt></td><td> 输出所有SQL语句到控制台. 有一个另外的选择是把<tt class="literal">org.hibernate.SQL</tt>这个log category设为<tt class="literal">debug</tt>。 <p> <span class="strong">eg.</span> <tt class="literal">true</tt> | <tt class="literal">false</tt> </p></td></tr><tr><td><tt class="literal">hibernate.format_sql</tt></td><td> 在log和console中打印出更漂亮的SQL。 <p> <span class="strong">取值</span> <tt class="literal">true</tt> | <tt class="literal">false</tt> </p></td></tr><tr><td><tt class="literal">hibernate.default_schema</tt></td><td> 在生成的SQL中, 将给定的schema/tablespace附加于非全限定名的表名上. <p> <span class="strong">取值</span> <tt class="literal">SCHEMA_NAME</tt> </p></td></tr><tr><td><tt class="literal">hibernate.default_catalog</tt></td><td> 在生成的SQL中, 将给定的catalog附加于非全限定名的表名上. <p> <span class="strong">取值</span> <tt class="literal">CATALOG_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.max_fetch_depth</tt></td><td> 为单向关联(一对一, 多对一)的外连接抓取(outer join fetch)树设置最大深度. 值为<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.default_batch_fetch_size</tt></td><td> 为Hibernate关联的批量抓取设置默认数量. <p> <span class="strong">取值</span> 建议的取值为<tt class="literal">4</tt>, <tt class="literal">8</tt>, 和<tt class="literal">16</tt> </p></td></tr><tr><td><tt class="literal">hibernate.default_entity_mode</tt></td><td> 为由这个<tt class="literal">SessionFactory</tt>打开的所有Session指定默认的实体表现模式. <p> <span class="strong">取值</span> <tt class="literal">dynamic-map</tt>, <tt class="literal">dom4j</tt>, <tt class="literal">pojo</tt> </p></td></tr><tr><td><tt class="literal">hibernate.order_updates</tt></td><td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -