【发布时间】:2020-11-28 09:29:46
【问题描述】:
在我的常规 SpringBoot 应用程序中,我需要异步捕获用户活动。我的数据库表相关性很差,无法利用 SPring 数据 JPA。因此,我使用持久性上下文中的 EntityManager 来执行数据库操作。但是子表中的插入没有完成。 下面的代码是从一个用 @Async 注释的方法调用的 这是代码: @PersistenceContext 私有EntityManager entityManager;
private Query query;
@Override
@Transactional
public void saveUserClicks(Pojo pojo)
throws DataIntegrityViolationException {
StringBuilder q1 = new StringBuilder(
"query1");
StringBuilder q2 = new StringBuilder(
"query2");
Query q1NativeQuery = getNativeQuery(entityManager.createNativeQuery(q1.toString()));
q1NativeQuery.setParameter(1, param1);
q1NativeQuery.setParameter(2, param2);
int executed = q1NativeQuery.executeUpdate();
System.out.println("Value of executed:" + executed);
Set<ChildPOJO> set = obj1.getSet();
if (null != set) {
for (ChildPOJO child : set) {
q1NativeQuery = getNativeQuery(entityManager.createNamedQuery(q2.toString()));
q1NativeQuery.setParameter(1, param1);
q1NativeQuery.setParameter(2, param2);
executed = q1NativeQuery.executeUpdate();
System.out.println("Value of executed :" + executed);
}
}
}
}
【问题讨论】:
标签: java asynchronous spring-data-jpa