【java – 多个实例并行命中@Transactional注释方法时会发生什么?】教程文章相关的互联网学习教程文章

java – 无法检索PlatformTransactionManager以进行测试上下文的@Transactional测试【代码】

当尝试在事务之间测试Hibernate(版本4)EHCache的缓存功能时 – 它失败:无法检索PlatformTransactionManager以进行测试上下文的@Transactional测试. 测试@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = { ApplicationConfig.class, CachingConfig.class }, loader = AnnotationConfigContextLoader.class) @PersistenceContext @Transactional public class EHCacheTest extends AbstractTransactional...

java – Spring Data JPA – 在没有@Transactional的情况下获取了Lazy Loaded集合【代码】

我的期望是在事务范围内访问集合时应该获取延迟加载的集合.例如,如果我想获取一个集合,我可以调用foo.getBars.size().缺少活动事务应该导致异常,并显示错误消息failed to lazily initialize a collection of bars: …. could notinitialize proxy – no Session但是,我注意到我的最新应用程序中的行为有所不同.我正在使用Spring Boot 1.5.1和“data-jpa”启动器.我过去使用过Spring Boot,但数据-jpa启动器对我来说是新的. 考虑以下...

java – 没有@Transactional注释的Spring托管事务【代码】

我正在使用Spring注释来管理我的交易,如下所示:@Transactional(readOnly = true) public class AlertServiceImpl implements AlertService {private AlertDAO alertDAO;public List<Alert> getAlerts(){List<Alert> alerts = alertDAO.getAlerts();return alerts;}}我想知道如果忘记注释会发生什么:// Oops! Forgot to use transactional annotation public class AlertServiceImpl implements AlertService {private AlertDAO ...

java – 声明式事务(@Transactional)在Spring中不能与@Repository一起使用【代码】

我正在尝试使用Spring,JPA和嵌入式H2数据库进行简单的应用程序.最近我遇到了声明性交易这个奇怪的问题.如果我使用@Repository注释自动装配我的DAO,它们就不会提交.更具体地说,我在flush上获得异常:javax.persistence.TransactionRequiredException: Exception Description: No transaction is currently active这是我的设置: persistence.xml中<persistence-unit name="schedulePU" transaction-type="RESOURCE_LOCAL"><provide...

java – 每当我说@Transactional时回滚每个检查过的异常【代码】

由于程序员被强制捕获所有已检查的异常,因此我会在出现任何问题时抛出已检查的异常.我想回滚任何这些期望.编写rollbackFor = Exception.classon每个@Transactional注释都非常容易出错,所以我想告诉spring:“每当我写@Transactional,我的意思是@Transactional(rollbackFor = Exception.class)”. 我知道,我可以创建一个自定义注释,但这似乎不自然. 那么有没有办法告诉spring它应该如何处理全局检查的删除?解决方法:自定义快捷方式...

java – 对hibernate应用程序使用@Transactional注释导致错误【代码】

我想在今天早上将春天与冬眠融为一体.我想使用spring transaction manager.但得到以下错误.该错误与@Trasactional Annotation有关.如果我删除注释,我能够从弹簧容器中获取bean.Exception in thread "main" java.lang.ClassCastException: com.sun.proxy.$Proxy19 cannot be cast to com.hibernate.dao.EvntDAOImpl at com.hibernate.action.HibernateAction.main(HibernateAction.java:17)我粘贴在我的源代码下面. 的pom.xml<proje...

java – 无法延迟获取 – @Transactional方法中没有会话【代码】

基本上我正在尝试获得与另一个实体具有LAZY关系的实体.以下是我尝试的两件事.第一个工作,第二个不工作,我不明白为什么.我想要的只是从数据库中获取实体.我把它放在其他方法中的原因是我不希望第一个是@Transactional,因为它可能需要一些时间来执行.请注意,我没有在第一种方法中保存甚至再次访问数据库,我只需要从db读取一次.方法1(按预期工作):@Override @Transactional public void sendEmailToUser(Long exhibitorId) {EmailExh...

java – 关于服务和@Transactional

如果我有一个连续调用三个其他服务类的服务类,并且每个子服务必须在某个时刻处理DAO对象,我该如何使包装服务将它们全部包装到一个事务中?它会像使用@Transactional注释包装一样简单吗?如果DAO已经标记为@Transactional怎么办?解决方法:如果您将外部服务注释为@Transactional并且您的DAO也是@Transactional并且由服务调用它们将默认加入外部事务,如您所希望的那样.

java – @transactional rollback无效【代码】

下面是我做的,我需要实现回滚,使用@transactional注释,但没有按预期工作,还需要做什么才能正确回滚?我希望在执行代码时,db中的结果应该是“testingOne”,目前它被设置为“notRollBacked”.你能指出我的错误吗?public Response deleteUser(Request argVO)throws Exception {Users users = UsersLocalServiceUtil.getUsers("sagar");users.setUserName("testingOne");UsersLocalServiceUtil.updateUsers(users);try{testRollbackFu...

java – @Transactional注释与saveAndFlush一起使用?【代码】

我有以下实现.@Transactional public void saveAndGenerateResult(Data data) {saveDataInTableA(data.someAmountForA);saveDataInTableB(data.someAmountForB);callAnAggregatedFunction(data); }public void saveDataInTableA(DataA a) {tableARepository.saveAndFlush(a); }public void saveDataInTableA(DataB b) {tableBRepository.saveAndFlush(b); }public void callAnAggregatedFunction() {// Do something based on the ...

java – 何时使用@Transactional的propagation = Proagation.REQUIRES_NEW?

我的问题很简单,几乎已在标题中说明:是否有一个特定的模式/用例,人们会说应该使用@Transactional(propagation = Proagation.REQUIRES_NEW)而不是默认传播? 谢谢 !解决方法:编写审计跟踪.您想要记录某人试图做某事的事实,无论主要交易是成功还是失败(因此都被回滚).

java – 在@Transactional方法之前和之后执行代码

我们有一个基于Spring的应用程序,其服务层使用@Transactional进行注释.我们需要在某些事务方法之前和之后运行代码,原因如下: >我们需要根据密钥同步对方法的访问.线程需要在事务开始之前阻塞.>如果事务成功,我们需要在队列上发布消息. 选项似乎是: >使用与可在同步块中运行@Transactional方法的服务类似的方法创建一个类,并检查返回然后发布消息(由于AOP代理问题,需要单独的类).服务呼叫服务,不好,感觉就像一个解决方案.>编写一个...

Java synchronized关键字和Spring @Transactional注释的逻辑比较

在关于Spring / Hibernate事务的演示之一中,我提出了一个意见,即在方法上同步关键字,而@Transactional在逻辑上有许多相似之处.果然它们是完全不同的野兽,但它们都作为方法应用于方法,并且都通过某种共享监视器控制对某些资源的访问(例如,在db中记录). 人群中有几个人立即反对并声称我的比较是错误的.我不记得具体的论点,但我也可以在这里看到一些观点.例如,从开头和事务开始,整个方法的同步工作只有在达到访问DB的语句时才会生效. ...

java – JpaRepository上的@Transactional【代码】

我正在使用只读数据库来获取我的项目中的一些数据.我们使用Spring v3和jpa以及hibernate 以下注释是否会使对我的存储库的所有调用都成为只读事务?或者我是否需要调用存储库的服务层上的注释package com.blah.jpa;import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.transaction.annotation.Transactional;@Transactional(readOnly = true) public interface ServiceToServerRepository e...

java – @Transactional如何影响Hibernate中的当前会话?【代码】

这是大多数DAO中使用的典型设置:@Transactional @Repository public class DAO {@AutowiredSessionFactory sessionFactory;public void save(Entity o) {sessionFactory.getCurrentSession().save(o);}public Entity load(int id) {return (Entity)sessionFactory.getCurrentSession().get(Entity.class, id);}}我看到只调用了getCurrentSession(),没有openSession或者close. 因此,当我从加载返回实体时,它不在会话中,懒惰的集合无...