草庐IT

transaction_utc

全部标签

java - 注释服务以使用@Retention、@Transactional、@Inherited 进行测试后,TestNG 单元测试不起作用

我正在使用TestNG测试业务服务,在SpringBoot应用程序中进行模拟单元测试。应用程序是多模块springboot项目。我正在为业务模块编写单元测试。我在pom中添加了以下依赖相关的测试,org.springframework.bootspring-boot-starter-testtestorg.springframework.bootspring-boot-starter-data-jpatestorg.testngtestng${testng.version}testorg.mockitomockito-coretestorg.hsqldbhsqldbtestorg.hi

java - Transaction-scoped Persistence context 和 Extended Persistence context 有什么区别?

Transaction-scopedPersistencecontext和ExtendedPersistencecontext有什么区别? 最佳答案 JSR-220中清楚地解释了差异。EnterpriseJavaBeans3.0规范:5.6Container-managedPersistenceContexts(...)Acontainer-managedpersistencecontextmaybedefinedtohaveeitheralifetimethatisscopedtoasingletransactionoranext

java - 将 LocalDateTime 转换为 UTC 中的 LocalDateTime

将LocalDateTime转换为UTC中的LocalDateTime。LocalDateTimeconvertToUtc(LocalDateTimedate){//doconversion}我在网上搜索过。但没有得到解决方案 最佳答案 我个人比较喜欢LocalDateTime.now(ZoneOffset.UTC);因为它是最易读的选项。 关于java-将LocalDateTime转换为UTC中的LocalDateTime,我们在StackOverflow上找到一个类似的问题:

java - Jodatime 的 DateTime 的默认日期时区为 UTC

我目前正在使用当前惯用语创建UTCDateTime对象DateTimenow=newDateTime(DateTimeZone.UTC);有什么方法可以默认,所以我可以使用默认构造函数创建基于UTC的DateTime对象,这样它就更隐含了?DateTimenow=newDateTime(); 最佳答案 如果您只想为joda时间设置默认时区,请使用DateTimeZone.setDefault.如果您想更改整个jvm使用的时区,请使用TimeZone.setDefault方法。请务必尽早设置它,因为它可以被jodatime缓存..引用

java - 使用@Async 嵌套@Transactional 方法

我将Spring与JPA一起使用。我打开了@EnableAsync和@EnableTransactionManagement。在我的用户注册服务方法中,我调用了一些其他的服务方法,它们被注释为@Async。这些方法可以做各种各样的事情,比如发送欢迎电子邮件和向我们的第三方支付系统注册新用户。在我想验证第三方支付系统是否成功创建用户之前,一切正常。此时,@Async方法会尝试创建一个UserAccount(它引用新生成的User)并使用出错javax.persistence.EntityNotFoundException:无法找到com.dk.st.model.User的id为2017注

Spring 数据 jpa @transactional

下面是我的申请流程Controller-服务-存储库在服务层我们有@Transactional注释我们还有jpa:repository配置,我们在其中指定实体管理器和txn管理器。我的怀疑是我觉得jpa:repositories中指定的txnmanager被考虑了,在服务层指定@Transactional没有影响。例如:服务层@Transactional可以映射到自定义txn管理器,因为服务调用的存储库可能有不同的txn管理器。那样会不会有问题?有人可以澄清一下,当我们使用jpa存储库时,我们是否需要将@Transactional放在服务层? 最佳答案

java - Spring,@Transactional 和 Hibernate 延迟加载

我正在使用spring+hibernate。我所有的HibernateDAO都直接使用sessionFactory。我有应用层->服务层->DAO层,所有集合都是延迟加载的。所以,问题是有时在应用程序层(包含GUI/swing)中,我使用服务层方法(包含@Transactional注释)加载实体,并且我想使用该对象的惰性属性,但是显然session已经关闭。解决这个问题的最佳方法是什么?编辑我尝试使用MethodInterceptor,我的想法是为我所有的实体写一个AroundAdvice并使用注释,例如://Customannotation,saythatsessionisrequi

java - 使用 spring @transactional hibernate session.flush

我在我的应用程序中使用Spring和Hibernate并使用SpringTransaction。所以我在方法上有一个带有注释@Transaction的服务层,而DAO层有用于数据库查询的方法。@Transactional(readOnly=false)publicvoidget(){}问题是当我想在数据库中保存一个对象时,我必须在DAO层方法的末尾使用session.flush()。为什么?我想如果我注释了@Transaction,那么Spring应该在服务方法完成时自动提交事务。DAO层:publicBaseEntitysaveEntity(BaseEntityentity)thro

java - Spring多个@Transactional数据源

在我的服务层中,如果我有多个事务管理器,我可以使用@Transactional(name="transactionManager2");来识别我使用哪个事务管理器吗? 最佳答案 您可以使用valueattribute指定与@Transactional一起使用的tx管理器。:Aqualifiervalueforthespecifiedtransaction.Maybeusedtodeterminethetargettransactionmanager,matchingthequalifiervalue(orthebeanname)of

java - Spring JpaRepository : delete() with subsequent save() in the same transaction

我的实体同时具有自动生成的主键(id)和业务键(命名空间)。我需要通过替换旧记录来更新记录。所以,我正在按业务键搜索它,删除它并保存一个新实体。如果它自己的事务中的每个操作都有效。但是一旦我把它们都放在同一个事务中,当save()被执行时,delete()还没有被执行,所以我得到了一个约束违规。transactionTemplate.execute(status->{MyEntityoldEntity=repository.findByNamespace(namespace);if(oldEntity!=null){repository.delete(oldEntity);}repos