ExtendedEntityManagerCreator.java 文件源码

java
阅读 37 收藏 0 点赞 0 评论 0

项目:class-guard 作者:
/**
 * Join an existing transaction, if not already joined.
 * @param enforce whether to enforce the transaction
 * (i.e. whether failure to join is considered fatal)
 */
private void doJoinTransaction(boolean enforce) {
    if (this.jta) {
        // Let's try whether we're in a JTA transaction.
        try {
            this.target.joinTransaction();
            logger.debug("Joined JTA transaction");
        }
        catch (TransactionRequiredException ex) {
            if (!enforce) {
                logger.debug("No JTA transaction to join: " + ex);
            }
            else {
                throw ex;
            }
        }
    }
    else {
        if (TransactionSynchronizationManager.isSynchronizationActive()) {
            if (!TransactionSynchronizationManager.hasResource(this.target) &&
                    !this.target.getTransaction().isActive()) {
                enlistInCurrentTransaction();
            }
            logger.debug("Joined local transaction");
        }
        else {
            if (!enforce) {
                logger.debug("No local transaction to join");
            }
            else {
                throw new TransactionRequiredException("No local transaction to join");
            }
        }
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号