Java JPA实体管理器资源处理
每次我调用JPA方法时,它都会创建实体和绑定查询 我的持久性属性是:Java JPA实体管理器资源处理,java,hibernate,orm,jpa,jboss,Java,Hibernate,Orm,Jpa,Jboss,每次我调用JPA方法时,它都会创建实体和绑定查询 我的持久性属性是: <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/> <property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.SingletonEhCacheProvider"/> <prope
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.SingletonEhCacheProvider"/>
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.cache.use_query_cache" value="true"/>
有没有什么好方法可以管理EntityManager资源,而不是每次都创建新的,或者可以在持久性中设置任何属性。记住这是JPA
每次查看以下绑定日志:
15:35:15,527 INFO [AnnotationBinder] Binding entity from annotated class: *
15:35:15,527 INFO [QueryBinder] Binding Named query: * => *
15:35:15,527 INFO [QueryBinder] Binding Named query: * => *
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [EntityBinder] Bind entity com.* on table *
15:35:15,542 INFO [HibernateSearchEventListenerRegister] Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
15:35:15,542 INFO [NamingHelper] JNDI InitialContext properties:{}
15:35:15,542 INFO [DatasourceConnectionProvider] Using datasource:
15:35:15,542 INFO [SettingsFactory] RDBMS:
and Real Application Testing options
15:35:15,542 INFO [SettingsFactory] JDBC driver: Oracle JDBC driver, version: 9.2.0.1.0
15:35:15,542 INFO [Dialect] Using dialect: org.hibernate.dialect.Oracle10gDialect
15:35:15,542 INFO [TransactionFactoryFactory] Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
15:35:15,542 INFO [TransactionManagerLookupFactory] No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recomm
ended)
15:35:15,542 INFO [SettingsFactory] Automatic flush during beforeCompletion(): disabled
15:35:15,542 INFO [SettingsFactory] Automatic session close at end of transaction: disabled
15:35:15,542 INFO [SettingsFactory] JDBC batch size: 15
15:35:15,542 INFO [SettingsFactory] JDBC batch updates for versioned data: disabled
15:35:15,542 INFO [SettingsFactory] Scrollable result sets: enabled
15:35:15,542 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): disabled
15:35:15,542 INFO [SettingsFactory] Connection release mode: auto
15:35:15,542 INFO [SettingsFactory] Default batch fetch size: 1
15:35:15,542 INFO [SettingsFactory] Generate SQL with comments: disabled
15:35:15,542 INFO [SettingsFactory] Order SQL updates by primary key: disabled
15:35:15,542 INFO [SettingsFactory] Order SQL inserts for batching: disabled
15:35:15,542 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
15:35:15,542 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
15:35:15,542 INFO [SettingsFactory] Query language substitutions: {}
15:35:15,542 INFO [SettingsFactory] JPA-QL strict compliance: enabled
15:35:15,542 INFO [SettingsFactory] Second-level cache: enabled
15:35:15,542 INFO [SettingsFactory] Query cache: enabled
15:35:15,542 INFO [SettingsFactory] Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge
15:35:15,542 INFO [RegionFactoryCacheProviderBridge] Cache provider: net.sf.ehcache.hibernate.SingletonEhCacheProvider
15:35:15,542 INFO [SettingsFactory] Optimize cache for minimal puts: disabled
15:35:15,542 INFO [SettingsFactory] Structured second-level cache entries: disabled
15:35:15,542 INFO [SettingsFactory] Query cache factory: org.hibernate.cache.StandardQueryCacheFactory
15:35:15,542 INFO [SettingsFactory] Statistics: disabled
15:35:15,542 INFO [SettingsFactory] Deleted entity synthetic identifier rollback: disabled
15:35:15,542 INFO [SettingsFactory] Default entity-mode: pojo
15:35:15,542 INFO [SettingsFactory] Named query checking : enabled
15:35:15,542 INFO [SessionFactoryImpl] building session factory
15:35:15,542 INFO [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
15:35:15,542 INFO [UpdateTimestampsCache] starting update timestamps cache at region: org.hibernate.cache.UpdateTimestampsCache
15:35:15,542 INFO [StandardQueryCache] starting query cache at region: org.hibernate.cache.StandardQueryCache
15:35:15527注释类的信息[AnnotationBinder]绑定实体:*
15:35:15527信息[QueryBinder]绑定命名查询:*=>*
15:35:15527信息[QueryBinder]绑定命名查询:*=>*
15:35:15527信息[QueryBinder]绑定命名查询:
15:35:15527信息[QueryBinder]绑定命名查询:
15:35:15527信息[QueryBinder]绑定命名查询:
15:35:15527信息[QueryBinder]绑定命名查询:
15:35:15527信息[QueryBinder]绑定命名查询:
15:35:15527信息[QueryBinder]绑定命名查询:
15:35:15527信息[QueryBinder]绑定命名查询:
15:35:15527信息[EntityBinder]绑定表上的实体com.**
15:35:15542信息[HibernateSearchEventListenerRegister]在类路径上找不到org.hibernate.search.event.FullTextIndexEventListener。未启用休眠搜索。
15:35:15542信息[NamingHelper]JNDI初始上下文属性:{}
15:35:15542信息[数据源连接提供程序]使用数据源:
15:35:15542信息[设置工厂]关系数据库管理系统:
和实际应用程序测试选项
15:35:15542信息[SettingsFactory]JDBC驱动程序:Oracle JDBC驱动程序,版本:9.2.0.1.0
15:35:15542信息[方言]使用方言:org.hibernate.dialogue.oracle10galenous
15:35:15542信息[TransactionFactoryFactory]事务策略:org.hibernate.Transaction.jdbc TransactionFactory
15:35:15542信息[TransactionManagerLookupFactory]未配置TransactionManagerLookup(在JTA环境中,不建议使用读写或事务性二级缓存
(完)
15:35:15542信息[设置工厂]在完成前()期间自动刷新:禁用
15:35:15542信息[设置工厂]事务结束时自动关闭会话:禁用
15:35:15542信息[设置工厂]JDBC批量大小:15
15:35:15542信息[SettingsFactory]版本化数据的JDBC批更新:禁用
15:35:15542信息[设置工厂]可滚动结果集:已启用
15:35:15542信息[设置工厂]JDBC3 getGeneratedKeys():已禁用
15:35:15542信息[设置工厂]连接释放模式:自动
15:35:15542信息[设置工厂]默认批量提取大小:1
15:35:15542信息[SettingsFactory]生成带有注释的SQL:已禁用
15:35:15542信息[SettingsFactory]按主键排序SQL更新:禁用
15:35:15542信息[SettingsFactory]批处理的顺序SQL插入:禁用
15:35:15542信息[SettingsFactory]查询转换器:org.hibernate.hql.ast.ASTQueryTranslatorFactory
15:35:15542信息[ASTQueryTranslatorFactory]使用ASTQueryTranslatorFactory
15:35:15542信息[SettingsFactory]查询语言替换:{}
15:35:15542信息[设置工厂]JPA-QL严格合规性:已启用
15:35:15542信息[设置工厂]二级缓存:已启用
15:35:15542信息[设置工厂]查询缓存:已启用
15:35:15542信息[SettingsFactory]缓存区域工厂:org.hibernate.Cache.impl.bridge.RegionFactoryCacheProviderBridge
15:35:15542信息[RegionFactoryCacheProviderBridge]缓存提供程序:net.sf.ehcache.hibernate.SingletonEhCacheProvider
15:35:15542信息[SettingsFactory]优化缓存以实现最小输入:已禁用
15:35:15542信息[SettingsFactory]结构化二级缓存项:禁用
15:35:15542信息[SettingsFactory]查询缓存工厂:org.hibernate.cache.StandardQueryCacheFactory
15:35:15542信息[设置工厂]统计信息:已禁用
15:35:15542信息[SettingsFactory]已删除实体合成标识符回滚:已禁用
15:35:15542信息[设置工厂]默认实体模式:pojo
15:35:15542信息[SettingsFactory]命名查询检查:已启用
15:35:15542信息[SessionFactoryImpl]构建会话工厂
15:35:15542信息[SessionFactoryObjectFactory]未将工厂绑定到JNDI,未配置JNDI名称
15:35:15542信息[UpdateTimestampsCache]正在以下区域启动更新时间戳缓存:org.hibernate.cache.UpdateTimestampsCache
15:35:15542信息[StandardQueryCache]在以下区域启动查询缓存:org.hibernate.cache.StandardQueryCache
创建
EntityManager
并不昂贵,通常针对每个请求进行;但是,创建一个EntityManagerFactory
非常昂贵,只需执行一次
在JavaSE应用程序中,这通常在应用程序开始时完成。基本上,将EMF保存在工厂或助手类中的静态变量中。只是别忘了在应用程序结束时关闭emf.close()。有关一些示例,请参见或。创建
实体管理器并不昂贵,通常针对每个请求进行;但是,创建一个EntityManagerFactory
非常昂贵,只需执行一次
在JavaSE应用程序中,这通常在应用程序开始时完成。基本上,将EMF保存在工厂或助手类中的静态变量中。只是别忘了在应用程序结束时关闭emf.close()。有关示例,请参见或。谢谢您的回复。我正在JavaEE应用程序中使用JPA。它在容器的外面。纯JPA。但要经常使用应用程序,并且流量会非常大,所以需要非常高效地编码和配置,以获得高性能。很抱歉,创建实体管理器工厂输入错误。所以,我如何才能有效地处理实体管理器工厂,而不是每次创建。谢谢回复。我正在JavaEE应用程序中使用JPA。它在容器的外面。纯JPA。但要经常使用应用程序,并且流量会非常大,所以需要非常高效地编码和配置,以获得高性能。很抱歉,创建实体管理器工厂输入错误。那我该怎么处理呢
15:35:15,527 INFO [AnnotationBinder] Binding entity from annotated class: *
15:35:15,527 INFO [QueryBinder] Binding Named query: * => *
15:35:15,527 INFO [QueryBinder] Binding Named query: * => *
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [QueryBinder] Binding Named query:
15:35:15,527 INFO [EntityBinder] Bind entity com.* on table *
15:35:15,542 INFO [HibernateSearchEventListenerRegister] Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
15:35:15,542 INFO [NamingHelper] JNDI InitialContext properties:{}
15:35:15,542 INFO [DatasourceConnectionProvider] Using datasource:
15:35:15,542 INFO [SettingsFactory] RDBMS:
and Real Application Testing options
15:35:15,542 INFO [SettingsFactory] JDBC driver: Oracle JDBC driver, version: 9.2.0.1.0
15:35:15,542 INFO [Dialect] Using dialect: org.hibernate.dialect.Oracle10gDialect
15:35:15,542 INFO [TransactionFactoryFactory] Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
15:35:15,542 INFO [TransactionManagerLookupFactory] No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recomm
ended)
15:35:15,542 INFO [SettingsFactory] Automatic flush during beforeCompletion(): disabled
15:35:15,542 INFO [SettingsFactory] Automatic session close at end of transaction: disabled
15:35:15,542 INFO [SettingsFactory] JDBC batch size: 15
15:35:15,542 INFO [SettingsFactory] JDBC batch updates for versioned data: disabled
15:35:15,542 INFO [SettingsFactory] Scrollable result sets: enabled
15:35:15,542 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): disabled
15:35:15,542 INFO [SettingsFactory] Connection release mode: auto
15:35:15,542 INFO [SettingsFactory] Default batch fetch size: 1
15:35:15,542 INFO [SettingsFactory] Generate SQL with comments: disabled
15:35:15,542 INFO [SettingsFactory] Order SQL updates by primary key: disabled
15:35:15,542 INFO [SettingsFactory] Order SQL inserts for batching: disabled
15:35:15,542 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
15:35:15,542 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
15:35:15,542 INFO [SettingsFactory] Query language substitutions: {}
15:35:15,542 INFO [SettingsFactory] JPA-QL strict compliance: enabled
15:35:15,542 INFO [SettingsFactory] Second-level cache: enabled
15:35:15,542 INFO [SettingsFactory] Query cache: enabled
15:35:15,542 INFO [SettingsFactory] Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge
15:35:15,542 INFO [RegionFactoryCacheProviderBridge] Cache provider: net.sf.ehcache.hibernate.SingletonEhCacheProvider
15:35:15,542 INFO [SettingsFactory] Optimize cache for minimal puts: disabled
15:35:15,542 INFO [SettingsFactory] Structured second-level cache entries: disabled
15:35:15,542 INFO [SettingsFactory] Query cache factory: org.hibernate.cache.StandardQueryCacheFactory
15:35:15,542 INFO [SettingsFactory] Statistics: disabled
15:35:15,542 INFO [SettingsFactory] Deleted entity synthetic identifier rollback: disabled
15:35:15,542 INFO [SettingsFactory] Default entity-mode: pojo
15:35:15,542 INFO [SettingsFactory] Named query checking : enabled
15:35:15,542 INFO [SessionFactoryImpl] building session factory
15:35:15,542 INFO [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
15:35:15,542 INFO [UpdateTimestampsCache] starting update timestamps cache at region: org.hibernate.cache.UpdateTimestampsCache
15:35:15,542 INFO [StandardQueryCache] starting query cache at region: org.hibernate.cache.StandardQueryCache