博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA PERSISTENCE API (JPA)
阅读量:6238 次
发布时间:2019-06-22

本文共 10643 字,大约阅读时间需要 35 分钟。

13.2.1. About JPA

The Java Persistence API (JPA) is the standard for using persistence in Java projects. Java EE 6 applications use the Java Persistence 2.0 specification, documented here: http://www.jcp.org/en/jsr/detail?id=317.

Hibernate EntityManager implements the programming interfaces and life-cycle rules defined by the specification. It provides JBoss EAP 6 with a complete Java Persistence solution.
JBoss EAP 6 is 100% compliant with the Java Persistence 2.0 specification. Hibernate also provides additional features to the specification.
To get started with JPA and JBoss EAP 6, refer to the bean-validation, greeter, and kitchensink quickstarts: Section 1.4.1.1, “Access the Quickstarts”.

 

 

13.2.4. Configuration

13.2.4.1. Hibernate Configuration Properties

Table 13.1. Hibernate Java Properties

Property Name Description
hibernate.dialect
The classname of a Hibernate 
org.hibernate.dialect.Dialect. Allows Hibernate to generate SQL optimized for a particular relational database.
In most cases Hibernate will be able to choose the correct 
org.hibernate.dialect.Dialect implementation, based on the 
JDBC metadata returned by the JDBC driver.
hibernate.show_sql
Boolean. Writes all SQL statements to console. This is an alternative to setting the log category 
org.hibernate.SQL to 
debug.
hibernate.format_sql
Boolean. Pretty print the SQL in the log and console.
hibernate.default_schema
Qualify unqualified table names with the given schema/tablespace in generated SQL.
hibernate.default_catalog
Qualifies unqualified table names with the given catalog in generated SQL.
hibernate.session_factory_name
The 
org.hibernate.SessionFactory will be automatically bound to this name in JNDI after it has been created. For example, 
jndi/composite/name.
hibernate.max_fetch_depth
Sets a maximum "depth" for the outer join fetch tree for single-ended associations (one-to-one, many-to-one). A 
0 disables default outer join fetching. The recommended value is between 
0 and 
3.
hibernate.default_batch_fetch_size
Sets a default size for Hibernate batch fetching of associations. The recommended values are 
4
8, and 
16.
hibernate.default_entity_mode
Sets a default mode for entity representation for all sessions opened from this 
SessionFactory. Values include: 
dynamic-map
dom4j
pojo.
hibernate.order_updates
Boolean. Forces Hibernate to order SQL updates by the primary key value of the items being updated. This will result in fewer transaction deadlocks in highly concurrent systems.
hibernate.generate_statistics
Boolean. If enabled, Hibernate will collect statistics useful for performance tuning.
hibernate.use_identifier_rollback
Boolean. If enabled, generated identifier properties will be reset to default values when objects are deleted.
hibernate.use_sql_comments
Boolean. If turned on, Hibernate will generate comments inside the SQL, for easier debugging. Default value is 
false.
hibernate.id.new_generator_mappings
Boolean. This property is relevant when using 
@GeneratedValue. It indicates whether or not the new 
IdentifierGenerator implementations are used for 
javax.persistence.GenerationType.AUTO
javax.persistence.GenerationType.TABLE and 
javax.persistence.GenerationType.SEQUENCE. Default value is 
true.
hibernate.ejb.naming_strategy
Chooses the 
org.hibernate.cfg.NamingStrategy implementation when using Hibernate EntityManager. This class is deprecated and this property is only provided for backward compatibility. This property must not be used with 
hibernate.ejb.naming_strategy_delegator.
If the application does not use EntityManager, follow the instructions here to configure the NamingStrategy:  .
hibernate.ejb.naming_strategy_delegator
Specifies an 
org.hibernate.cfg.naming.NamingStrategyDelegator implementation for database objects and schema elements when using Hibernate EntityManager. This property has the following possible values.
  • org.hibernate.cfg.naming.LegacyNamingStrategyDelegator: This is the default value. This class is deprecated and is only provided for backward compatibility.
  • org.hibernate.cfg.naming.ImprovedNamingStrategyDelegator: This is the preferred value. It generates default table and column names that comply with the JPA specification. It allows for specification of both the entity and foreign key class names. This class only affects entities that are mapped using Java annotations or JPA XML descriptors. Entities mapped using 
    hbm.xml are not affected,
  • If you prefer, you can configure a custom class that implements 
    org.hibernate.cfg.naming.ImprovedNamingStrategyDelegator

NOTE

This property must not be used with 
hibernate.ejb.naming_strategy. It is a temporary replacement for 
org.hibernate.cfg.NamingStrategy to address its limitations. A more comprehensive solution is planned for Hibernate 5.0 that replaces both 
org.hibernate.cfg.NamingStrategy and 
org.hibernate.cfg.naming.NamingStrategyDelegator.
If the application does not use EntityManager, follow the instructions here to configure the NamingStrategy:  .

 

IMPORTANT

For 
hibernate.id.new_generator_mappings, new applications should keep the default value of 
true. Existing applications that used Hibernate 3.3.x may need to change it to 
false to continue using a sequence object or table based generator, and maintain backward compatibility.

13.2.4.2. Hibernate JDBC and Connection Properties

Table 13.2. Properties

Property Name Description
hibernate.jdbc.fetch_size
A non-zero value that determines the JDBC fetch size (calls 
Statement.setFetchSize()).
hibernate.jdbc.batch_size
A non-zero value enables use of JDBC2 batch updates by Hibernate. The recommended values are between 
5 and 
30.
hibernate.jdbc.batch_versioned_data
Boolean. Set this property to 
true if the JDBC driver returns correct row counts from 
executeBatch(). Hibernate will then use batched DML for automatically versioned data. Default value is to 
false.
hibernate.jdbc.factory_class
Select a custom 
org.hibernate.jdbc.Batcher. Most applications will not need this configuration property.
hibernate.jdbc.use_scrollable_resultset
Boolean. Enables use of JDBC2 scrollable resultsets by Hibernate. This property is only necessary when using user-supplied JDBC connections. Hibernate uses connection metadata otherwise.
hibernate.jdbc.use_streams_for_binary
Boolean. This is a system-level property. Use streams when writing/reading 
binary or 
serializable types to/from JDBC.
hibernate.jdbc.use_get_generated_keys
Boolean. Enables use of JDBC3 
PreparedStatement.getGeneratedKeys() to retrieve natively generated keys after insert. Requires JDBC3+ driver and JRE1.4+. Set to false if JDBC driver has problems with the Hibernate identifier generators. By default, it tries to determine the driver capabilities using connection metadata.
hibernate.connection.provider_class
The classname of a custom 
org.hibernate.connection.ConnectionProviderwhich provides JDBC connections to Hibernate.
hibernate.connection.isolation
Sets the JDBC transaction isolation level. Check 
java.sql.Connection for meaningful values, but note that most databases do not support all isolation levels and some define additional, non-standard isolations. Standard values are 
1, 2, 4, 8.
hibernate.connection.autocommit
Boolean. This property is not recommended for use. Enables autocommit for JDBC pooled connections.
hibernate.connection.release_mode
Specifies when Hibernate should release JDBC connections. By default, a JDBC connection is held until the session is explicitly closed or disconnected. The default value 
auto will choose 
after_statement for the JTA and CMT transaction strategies, and 
after_transaction for the JDBC transaction strategy.
Available values are 
auto (default), 
on_close
after_transaction
after_statement.
This setting only affects 
Session returned from 
SessionFactory.openSession. For 
Session obtained through 
SessionFactory.getCurrentSession, the 
CurrentSessionContext implementation configured for use controls the connection release mode for that 
Session.
hibernate.connection.<propertyName>
Pass the JDBC property 
<propertyName> to DriverManager.getConnection().
hibernate.jndi.<propertyName>
Pass the property 
<propertyName> to the JNDI InitialContextFactory.

13.2.4.3. Hibernate Cache Properties

Table 13.3. Properties

Property Name Description
hibernate.cache.region.factory_class
The classname of a custom 
CacheProvider.
hibernate.cache.use_minimal_puts
Boolean. Optimizes second-level cache operation to minimize writes, at the cost of more frequent reads. This setting is most useful for clustered caches and, in Hibernate3, is enabled by default for clustered cache implementations.
hibernate.cache.use_query_cache
Boolean. Enables the query cache. Individual queries still have to be set cacheable.
hibernate.cache.use_second_level_cache
Boolean. Used to completely disable the second level cache, which is enabled by default for classes that specify a 
<cache> mapping.
hibernate.cache.query_cache_factory
The classname of a custom 
QueryCache interface. The default value is the built-in 
StandardQueryCache.
hibernate.cache.region_prefix
A prefix to use for second-level cache region names.
hibernate.cache.use_structured_entries
Boolean. Forces Hibernate to store data in the second-level cache in a more human-friendly format.
hibernate.cache.default_cache_concurrency_strategy
Setting used to give the name of the default 
org.hibernate.annotations.CacheConcurrencyStrategy to use when either 
@Cacheable or 
@Cache is used. 
@Cache(strategy="..") is used to override this default.

 

13.2.4.4. Hibernate Transaction Properties

Table 13.4. Properties

Property Name Description
hibernate.transaction.factory_class
The classname of a 
TransactionFactory to use with Hibernate 
Transaction API. Defaults to 
JDBCTransactionFactory).
jta.UserTransaction
A JNDI name used by 
JTATransactionFactory to obtain the JTA 
UserTransaction from the application server.
hibernate.transaction.manager_lookup_class
The classname of a 
TransactionManagerLookup. It is required when JVM-level caching is enabled or when using hilo generator in a JTA environment.
hibernate.transaction.flush_before_completion
Boolean. If enabled, the session will be automatically flushed during the before completion phase of the transaction. Built-in and automatic session context management is preferred.
hibernate.transaction.auto_close_session
Boolean. If enabled, the session will be automatically closed during the after completion phase of the transaction. Built-in and automatic session context management is preferred.

 

 

https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.4/html/Development_Guide/sect-Java_Persistence_API_JPA.html

 

转载地址:http://swdia.baihongyu.com/

你可能感兴趣的文章
MySql 小表驱动大表
查看>>
Redis 数据结构的底层实现 (一) RealObject,embstr,sds,ziplist,quicklist
查看>>
SQL语句注入的问题
查看>>
jQueryEasyUI Messager基本使用
查看>>
【C语言学习趣事】_33_关于C语言和C++语言中的取余数(求模)的计算_有符号和无符号数的相互转换问题...
查看>>
Tensorboard教程:显示计算图中节点信息
查看>>
java 线程基本概念 可见性 同步
查看>>
Java:JUnit包
查看>>
unity_快捷键
查看>>
洛谷P3358 最长k可重区间集问题(费用流)
查看>>
洛谷P1251 餐巾计划问题(费用流)
查看>>
Beta冲刺(2/5)(麻瓜制造者)
查看>>
vs2012编码的UI测试使用教程
查看>>
android 在非UI线程更新UI仍然成功原因深入剖析
查看>>
清北NOIP训练营集训笔记——图论
查看>>
oracle ORA-00060死锁查询、表空间扩容
查看>>
转载自https://github.com/jsfront/src/blob/master/css.md
查看>>
MySQL索引优化分析(上)
查看>>
jquery $().each,$.each的区别
查看>>
sql server 2000/2005 游标的使用操作(转)
查看>>