草庐IT

transaction_safe

全部标签

java - 单例对象工厂 : is this code thread-safe?

我有一个用于许多单例实现的通用接口(interface)。接口(interface)定义了可以抛出检查异常的初始化方法。我需要一个工厂来按需返回缓存的单例实现,想知道以下方法是否线程安全?UPDATE1:请不要建议任何第三部分库,因为由于可能的许可问题,这将需要获得法律许可:-)更新2:此代码可能会在EJB环境中使用,因此最好不要产生额外的线程或使用类似的东西。interfaceSingleton{voidinit()throwsSingletonException;}publicclassSingletonFactory{privatestaticConcurrentMap>CACH

java - Hibernate、Spring、@Transactional - 围绕 try/catch?

我正在使用Spring3和Hibernate3.6开发一个网络应用程序。我对@Transactional注释和代码结构有一些疑问。->当我使用@Transactional(使用Spring进行事务管理)时,是否必须在调用它们时使用try/catch包围@Transactional注释的方法?例如,当我得到一个加载、更改并返回一个对象的方法时,我从另一个类调用它:我是否必须用try/catch包围调用?也许出了什么问题,没有返回对象,数据库连接失败..我不知道。直到现在,我认为@Transactional关心所有可能发生的异常,并在发生错误时回滚此事务中的每个操作。但如果它发生了,我必须

java - 如何使用 @Resource WebServiceContext 注入(inject) Spring 的 @Transactional

我有一个Metrojax-ws网络服务,看起来或多或少像这样:@WebService@TransactionalpublicclassUserManagementServiceImpl{@ResourceprivateWebServiceContextcontext;...}WebServiceContext总是空的。但是,如果我删除@Transactional,则会注入(inject)WebServiceContext。有人知道解决方法吗?谢谢。 最佳答案 我找到了解决方法。使用setter注入(inject)而不是字段注入(in

java - 你如何重构@Transactional 方法来拆分非事务部分

我有一个作为独立Java应用程序的一部分运行的数据访问类。它目前正在工作,这意味着定义了一个事务管理器,但我想重构该类以减少事务的范围,但如果我这样做,我会得到org.hibernate.HibernateException:NoHibernateSessionboundtothread,andconfiguration不允许在此处创建非事务性,这意味着移动@Transactional以某种方式阻止了它被识别。我的原始版本的重构方法是私有(private)的,但我发现有人建议将其更改为公开的,因为在某些情况下注释不会被提取。publicclassDoStuff{@Transaction

java - 组织.hibernate.HibernateException : save is not valid without active transaction in my case

我有GenericService类,它封装了子类的crud方法:publicabstractclassGenericService,TextendsDomainObject,I>{publicIsave(Tt){returngetDao().save(t);}...........................}类AnswerService扩展GenericService。它AutowiringAnswerDao并将自己声明为@Service和@Transactionalspring组件。@Service@Transactional(propagation=Propagation.R

java - 没有定义 [org.springframework.transaction.PlatformTransactionManager] 类型的合格 bean

我正在使用2个Weblogic数据源;在我的XML配置中,我有2个持久性单元、2个entityManagerFactories和2个transactionManagers。文件如下:persistence.xml:org.eclipse.persistence.jpa.PersistenceProviderorg.eclipse.persistence.jpa.PersistenceProviderconfig.xml:FINEFINE模型库:@Repository("ModelRepo")@PersistenceContext(unitName="modelPersistence")

Java 泛型和注解 : Type-Safe

我知道我可以做类似的事情:publicclassAbstractDao{}在这种情况下,Bean是一个类或接口(interface)。我想知道是否有办法用注释来做到这一点,比如:publicclassAbstractDao{}这样的事情可能吗?提前致谢! 最佳答案 不幸的是,注解中没有继承,所以这是不可能的。在这里查看类似问题的答案:WhyisnotpossibletoextendannotationsinJava? 关于Java泛型和注解:Type-Safe,我们在StackOverf

java - Hibernate 的 Transaction.wasCommitted 方法的替代品是什么?

我正在尝试从旧版本的Hibernate(第3版)更新一些代码。它使用Hibernate5中不再存在的Transaction接口(interface)的两个方法。session.getTransaction().wasCommitted()session.getTransaction().wasRolledBack()Hibernate5中的等价物是什么? 最佳答案 您似乎在寻找session.getTransaction().getStatus()。例如,session.getTransaction().getStatus()==T

java - 如何使用 AspectJ 设置 springframework @Transactional

我想使用spring-aspects使我的方法具有事务性,但不使用SpringAOP(SpringAOP可以正常工作:)。我正在使用Maven来管理我的项目。有没有办法对我的项目类进行编译时编织,这样“它们是Transactional”。我正在尝试使用Mojo'sAspectJMavenPlugin,但没有任何好的结果。请帮忙。 最佳答案 我想通了。Maven插件工作正常,但问题出在我的spring配置上:我有:我需要的是:现在一切正常。我的@Transactional方法的性能得到改善,这也是我的目标。这是我的mavenaspec

java - @Transactional 注释与 saveAndFlush 一起使用?

我有以下实现。@TransactionalpublicvoidsaveAndGenerateResult(Datadata){saveDataInTableA(data.someAmountForA);saveDataInTableB(data.someAmountForB);callAnAggregatedFunction(data);}publicvoidsaveDataInTableA(DataAa){tableARepository.saveAndFlush(a);}publicvoidsaveDataInTableA(DataBb){tableBRepository.save