小编Saj*_*jid的帖子

我应该为JBDC模板使用什么事务管理器使用JPA?

我正在为我的JPA事务使用标准的JPA事务管理器.但是,现在我想添加一些将共享相同"数据源"的JDBC实体.如何使用spring事务使JDBC操作具有事务性?我是否需要切换到JTA事务管理器?是否可以将JPA和JDBC事务服务与相同的数据源一起使用?更好的是,是否可以混合这两笔交易?

更新:@Espen:

我有一个从SimpleJdbcDaoSupport扩展的dao,它使用getSimpleJDBCTemplate.update插入数据库行.当从服务代码抛出RuntimeException时,事务在使用JPATransactionManager时永远不会回滚.它在使用DatasourceTransactionManager时会回滚.我试图调试JPATransactionManager,似乎它永远不会对底层的JDBCConnection执行回滚(我想这是因为数据源不一定是JPA的JDBC).我的配置设置与您在此处解释的完全相同.

这是我的测试代码:

<context:property-placeholder location="classpath:*.properties"/>

<!-- JPA EntityManagerFactory -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="persistenceXmlLocation"
        value="classpath:/persistence-test.xml" />
    <property name="persistenceProvider">
        <bean class="org.hibernate.ejb.HibernatePersistence" />
    </property>

</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>

<!--
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"></property>
</bean>
-->

<!-- Database connection pool -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${database.driverClassName}" />
    <property name="url" value="${database.url}" />
    <property name="username" value="${database.username}" />
    <property name="password" value="${database.password}" />
    <property name="testOnBorrow" value="${database.testOnBorrow}" />
    <property name="validationQuery" value="${database.validationQuery}" />
    <property name="minIdle" value="${database.minIdle}" /> …
Run Code Online (Sandbox Code Playgroud)

java spring jpa jdbc

22
推荐指数
1
解决办法
2万
查看次数

使用Linux NPTL的Java I/O与Java新I/O(NIO)

我的Web服务器使用通常的Java I/O和每个连接机制.如今,他们越来越user with用户(长轮询连接).但是,连接大多是空闲的.虽然这可以通过添加更多的Web服务器来解决,但我一直在尝试对NIO实现进行一些研究.

我对它有一个复杂的印象.我已经读过基准测试,其中Linux中新的NPTL库的常规I/O 优于NIO.

使用Java I/O配置和使用最新的NPTL for Linux有什么真实的体验?有没有提高性能?

在更大范围的问题上:

在标准服务器类机器(带有四核处理器的戴尔)中我们希望正常执行的最大I/O和阻塞线程数(我们在Tomcat线程池中配置)是多少(使用Linux NPTL库?).如果线程池变得非常大,比如超过1000个线程会有什么影响?

任何参考和指针将非常感谢.

java linux multithreading nio nptl

21
推荐指数
1
解决办法
5220
查看次数

直接在正则表达式上的Scala匹配案例

我想尝试做以下事情:

list.foreach {x => 
     x match {
       case """TEST: .*""" => println( "TEST" )
       case """OXF.*"""   => println("XXX")
       case _             => println("NO MATCHING")
     }
}
Run Code Online (Sandbox Code Playgroud)

这个想法是使用它像groovy switch case正则表达式匹配.但我似乎无法编译.什么是scala中正确的方法?

scala

8
推荐指数
2
解决办法
1万
查看次数

如何编写Java JIT优化友好代码?

当您想从代码中挤出最后一点性能时,您可能希望尽可能地利用JIT优化.例如,标记方法final为简单的方法内联,避免在关键位置的多态性等.

但我找不到任何java程序员可以用来"提示"JIT编译器以获得更快代码的参考或选项列表?难道我们不应该列出JIT的低延迟性能的"最佳编程"实践吗?

java real-time

7
推荐指数
2
解决办法
1426
查看次数

如何触发客户经理从应用程序添加新帐户

我正在尝试扩展SampleSync应用程序.安装应用程序后,我可以进入设置 - >帐户和同步 - >添加帐户以添加帐户.但是,如果我想从我的应用程序代码中检查并希望触发AccountManager直接添加新帐户,那么最佳方法是什么?

android account-management

1
推荐指数
1
解决办法
2867
查看次数

标签 统计

java ×3

account-management ×1

android ×1

jdbc ×1

jpa ×1

linux ×1

multithreading ×1

nio ×1

nptl ×1

real-time ×1

scala ×1

spring ×1