我有一个Metrojax-ws网络服务,看起来或多或少像这样:@WebService@TransactionalpublicclassUserManagementServiceImpl{@ResourceprivateWebServiceContextcontext;...}WebServiceContext总是空的。但是,如果我删除@Transactional,则会注入(inject)WebServiceContext。有人知道解决方法吗?谢谢。 最佳答案 我找到了解决方法。使用setter注入(inject)而不是字段注入(in
我有一个作为独立Java应用程序的一部分运行的数据访问类。它目前正在工作,这意味着定义了一个事务管理器,但我想重构该类以减少事务的范围,但如果我这样做,我会得到org.hibernate.HibernateException:NoHibernateSessionboundtothread,andconfiguration不允许在此处创建非事务性,这意味着移动@Transactional以某种方式阻止了它被识别。我的原始版本的重构方法是私有(private)的,但我发现有人建议将其更改为公开的,因为在某些情况下注释不会被提取。publicclassDoStuff{@Transaction
我想使用spring-aspects使我的方法具有事务性,但不使用SpringAOP(SpringAOP可以正常工作:)。我正在使用Maven来管理我的项目。有没有办法对我的项目类进行编译时编织,这样“它们是Transactional”。我正在尝试使用Mojo'sAspectJMavenPlugin,但没有任何好的结果。请帮忙。 最佳答案 我想通了。Maven插件工作正常,但问题出在我的spring配置上:我有:我需要的是:现在一切正常。我的@Transactional方法的性能得到改善,这也是我的目标。这是我的mavenaspec
我有以下实现。@TransactionalpublicvoidsaveAndGenerateResult(Datadata){saveDataInTableA(data.someAmountForA);saveDataInTableB(data.someAmountForB);callAnAggregatedFunction(data);}publicvoidsaveDataInTableA(DataAa){tableARepository.saveAndFlush(a);}publicvoidsaveDataInTableA(DataBb){tableBRepository.save
我有几个用@Transactional注释的公共(public)方法,IntelliJ显示了它们可以是包私有(private)或私有(private)的警告。@TransactionalpublicvoiddoSomething(){///body}由于用@Transactional注释的方法应该是公开的,我如何在IntelliJ中禁用此检查/警告仅针对那些方法? 最佳答案 遗憾的是,不可能让所有用@Transactional注释的方法清除警告,尽管可以将@SuppressWarnings("WeakerAccess")添加到使警告
我的应用程序使用SpringAutowiring来配置bean。我刚刚尝试添加@Transactional并且似乎没有调用预期的代理。我希望PersonalController使用事务代理包装的UpdatePublicMapService调用UpdatePublicMapService。我看到的是PersonalController被实例化了两次。第一次它获得代理,但第二次它获得未代理的目标。我做错了什么?非常感谢您的帮助。网络.xml...contextConfigLocation/WEB-INF/applicationContext.xml,/WEB-INF/application
我的@Transactionnal注释似乎被忽略了。我在Spring容器的初始化上没有错误。看来我的方法还没有被SpringTX框架代理。在执行我的服务方法期间,JDBCTemplate抛出了预期的RuntimeException。问题是JDBC连接没有回滚,更改仍然存在。堆栈跟踪没有显示应该包装我的服务方法的代理的任何迹象。编辑:添加了Controller的代码编辑2:添加了服务的接口(interface)这是我的服务界面。publicinterfaceApplicationsService{publicApplicationgetApplicationById(intid);pub
在我的公司,不鼓励使用Spring框架,而是提倡使用JavaEE6。但最近我在Using@Transactional阅读了有关Springs@Transactional注释的信息。并认为这对我们的代码非常有用。据我所知,使用@Transactional注释的方法将重用一个已经存在的事务,或者如果在调用该方法时不存在Activity事务则打开一个新事务。JavaEE6中是否有类似的东西(例如,类似的注释)可用? 最佳答案 EJB组件在JavaEE中具有这种事务控制。您可以将EJB上方法的事务设置为Required、RequiresNe
在我的应用程序中,在创建任务时,我需要对Google进行API调用以创建Google日历事件。我决定在一个单独的线程上进行API调用,这样我们的客户端就不必等待更长时间的响应。@Override@Transactional(rollbackFor=DataException.class)publicTaskResponseBeancreateTask(TaskCreationBeantaskCreationBean,UserAccessDetailsaccessDetails)throwsDataException{StringgoogleEventId="";try{TaskServ
在REQUIRED传播的情况下,当调用方方法本身是事务性的时,如果它们不同,当前方法是否会覆盖封闭的事务属性(例如rollbackFor)?插图:ClassA{@Transactional(propagation=Propagation.REQUIRED,rollbackFor={SomeException.class})voidfoo(){try{b.bar();}catch(OtherExceptione){//isthetransactionmarkedasrollback-onlyatthispoint?}}}ClassB{@Transactional(propagation=