JPA中几种比较好的设置数据库连接事务隔离级别的方法
来源:互联网 发布:微信点餐系统源码php 编辑:程序博客网 时间:2024/06/05 11:34
在使用JPA时,有时候需要设置连接的事务隔离级别,以下几种方法可供参考。
DataSource source = (javax.sql.DataSource) jndiCntxt.lookup("java:comp/env/jdbc/myds");Connection con = source.getConnection( );con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);如果DataSource是在spring中配置的,则可以在spring中设置
<bean id="gf.dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="maxTotal" value="${jdbc.maxConn}"/> <property name="DefaultTransactionIsolation" value="1"/> </bean>
2).如果底层用的是Hibernate的实现:
org.hibernate.Session session = (Session)entityManager.getDelegate();Connection connection = session.connection();connection.setTransactionIsolation(Connection.READ_UNCOMMITTED);
3).如果底层用的是eclipseLink的实现:
import org.eclipse.persistence.sessions.DatabaseLogin;import org.eclipse.persistence.sessions.Session;import org.eclipse.persistence.sessions.factories.SessionCustomizer;public class DFSessionCustomizer implements SessionCustomizer { @Override public void customize(Session session) throws Exception { DatabaseLogin databaseLogin = (DatabaseLogin) session.getDatasourceLogin(); databaseLogin.setTransactionIsolation(DatabaseLogin.TRANSACTION_READ_COMMITTED); }}在persistence.xml中设置SessionCustomizer
<property name="eclipselink.session.customizer" value="com.filip.blabla.DFSessionCustomizer"/>
另外,直接设置java.sql.Connection是不行的:
java.sql.Connection connection = entityManager.unwrap(java.sql.Connection.class);connection.setTransactionIsolation(java.sql.Connection.TRANSACTION_READ_COMMITTED);
0 0
- JPA中几种比较好的设置数据库连接事务隔离级别的方法
- mysql设置事务的隔离级别
- Hibernate设置事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- 事务的隔离级别
- Android中PopupWindow的使用
- 微信开发中的坑
- Js获取当前日期,方便以后直接用
- Android——permission 列表
- Android——systembroadcast 列表
- JPA中几种比较好的设置数据库连接事务隔离级别的方法
- Java中方法的重载与覆写的区别
- Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity
- 理解Java NIO
- Jquery三级菜单切换
- Android- 关于proguard.cfg
- webstorm 设置jsp支持ZenCoding
- 一句话_理解Activity四种启动模式
- 基于XMPP协议的aSmack源码分析【1】