は私がのEntityManagerとサービスを持っているし、initメソッドにDAOクラスを作成し、DAOのconsctructor:javax.persistence.TransactionRequiredException:アクティブなトランザクション
@Slf4j
public class OPhoneService {
@Setter
private EntityManager entityManager;
public void init() {
log.info("init");
log.info(Thread.currentThread().getName());
oPhoneDao = new OPhoneDaoImpl(entityManager);
List<OPhone> oPhones = oPhoneDao.getAllOPhones(0);
OPhone oPhone = oPhones.get(0);
oPhone.setState(1);
oPhoneDao.merge(oPhone);
}
}
にし、このラインoPhoneDao.merge(oPhone);
GET誤差にEntityManagerを渡す一切現在ありません。
javax.persistence.TransactionRequiredException: There is no currently active transaction.
私のマージ方法:
@Override
public E merge(E e) {
E merge = entityManager.merge(e);
entityManager.flush();
return merge;
}
と私のbeanの設定
<bean id="oPhoneBean" class="....services.OPhoneService" init-method="init"
scope="singleton">
<jpa:context unitname="ophone" property="entityManager"/>
<tx:transaction method="*" value="Required"/>
</bean>
Okです。それはテスト用です。私は石英メソッドを使用するときに私はいくつかのエラーが発生するので、私はinitメソッドでこれを記述します。私はinitメソッドでdaoを作成し、yhemはschedulet quartzメソッドでこのDAOを使用してみてください。私がアプリケーションをマージすると呼び出すときフリーズ – user5620472
私は終了してもうカラフとはうまくいかないでしょう。 – user5620472
あなたはなぜ尋ねますか? –