私は非同期Webサービスメソッドを持っていますが、私は応答202(Accepted)を送り、DBと同じ変更を行いたいと思います。 JPAでどのように実装できますか?JPAを使用した非同期Webサービス
@Transactional
public void createTask(@Suspended AsyncResponse response){
new Thread(){
public void run(){
RequestTask requestTask = new RequestTask();
requestTask.setAim("all tables");
requestTask.setDescription("Update Tables");
requestTask.setOwner("John Calagan");
requestTaskDao.createRequestTask(requestTask);
}
}.start();
Response acceptedResponse = Response.status(Response.Status.ACCEPTED).build();
response.resume(acceptedResponse);
}
マイダオレベル:
@PersistenceContext(unitName = "administration")
private EntityManager entityManager;
@Override
public void createRequestTask(RequestTask requestTask) {
entityManager.persist(requestTask);
}
しかし、私は例外を持っている:
Exception in thread "Thread-6" javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityMa nagerInvocationHandler.invoke(SharedEntityManagerCreator.java:282) at com.sun.proxy.$Proxy33.persist(Unknown Source) at...
どのように私はこの問題を解決することができますか?ここに私のサービスメソッド
クラスIで設定した注釈を忘れた@Transactional – Vas9IH
質問を編集できます。 – talex
ありがとう、私は気づかなかった – Vas9IH