我试图了解如何在使用Spring进行事务管理的Java应用程序中实现线程.我在Spring文档中找到了TaskExecutor部分,而ThreadPoolTaskExecutor看起来很符合我的需求;
ThreadPoolTaskExecutor类
此实现只能在Java 5环境中使用,但也是该环境中最常用的实现.它公开了bean属性,用于配置java.util.concurrent.ThreadPoolExecutor并将其包装在TaskExecutor中.如果您需要一些高级的东西,例如ScheduledThreadPoolExecutor,建议您使用ConcurrentTaskExecutor.
但是我不知道如何使用它.我一直在寻找好的例子现在没有运气.如果有人能帮助我,我会很感激.
我想编写一个单元测试来验证乐观锁定是否正确设置(使用Spring和Hibernate).
我想让测试类扩展Spring AbstractTransactionalJUnit4SpringContextTests.
我想要最终得到的是这样的方法:
@Test (expected = StaleObjectStateException.class)
public void testOptimisticLocking() {
A a = getCurrentSession().load(A.class, 1);
a.setVersion(a.getVersion()-1);
getCurrentSession().saveOrUpdate(a);
getCurrentSession().flush();
fail("Optimistic locking does not work");
}
Run Code Online (Sandbox Code Playgroud)
此测试失败.你推荐什么作为最佳实践?
我试图这样做的原因是我想将其转移version到客户端(使用DTO).我想证明,当DTO被发送回服务器并与新加载的实体合并时,如果在此期间其他人更新了实体,则保存该实体将失败.