本文整理汇总了Java中org.hibernate.resource.transaction.spi.TransactionStatus类的典型用法代码示例。如果您正苦于以下问题:Java TransactionStatus类的具体用法?Java TransactionStatus怎么用?Java TransactionStatus使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
TransactionStatus类属于org.hibernate.resource.transaction.spi包,在下文中一共展示了TransactionStatus类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: render
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
@Sessional
@Override
public void render(WebSocketRegion region, @Nullable PageKey sourcePageKey) {
if (dao.getSession().getTransaction().getStatus() == TransactionStatus.ACTIVE) {
dao.doAfterCommit(new Runnable() {
@Override
public void run() {
doRender(region, sourcePageKey);
}
});
} else {
doRender(region, sourcePageKey);
}
}
示例2: exce
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
protected void exce(ChannelHandlerContext ctx, ClientPacket packet) throws Exception {
session = Session.getSession(ctx);
if(null == session){
logger.debug("new session for {}",ctx);
session = Session.create(ctx);
}
DB.getSession().getTransaction().begin();
try{
onPacket(packet);
if(DB.getSession().getTransaction().getStatus().isOneOf(TransactionStatus.ACTIVE))
DB.getSession().getTransaction().commit();
}catch(Exception e){
logger.error("onPacket error, {}", packet.protocol , e);
if(DB.getSession().isOpen())
DB.getSession().getTransaction().rollback();
}
}
示例3: onSessionEnd
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
/** {@inheritDoc} */
@Override public void onSessionEnd(CacheStoreSession ses, boolean commit) {
Session hibSes = ses.attach(null);
if (hibSes != null) {
try {
Transaction tx = hibSes.getTransaction();
if (commit) {
if (hibSes.isDirty())
hibSes.flush();
if (tx.getStatus() == TransactionStatus.ACTIVE)
tx.commit();
}
else if (tx.getStatus().canRollback())
tx.rollback();
}
catch (HibernateException e) {
throw new CacheWriterException("Failed to end store session [tx=" + ses.transaction() + ']', e);
}
finally {
hibSes.close();
}
}
}
示例4: afterTest
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
/** {@inheritDoc} */
@Override protected void afterTest() throws Exception {
super.afterTest();
Session s = store.session(null);
if (s == null)
return;
try {
s.createQuery("delete from " + CacheHibernateBlobStoreEntry.class.getSimpleName())
.setFlushMode(FlushMode.ALWAYS).executeUpdate();
Transaction hTx = s.getTransaction();
if (hTx != null && hTx.getStatus() == TransactionStatus.ACTIVE)
hTx.commit();
}
finally {
s.close();
}
}
示例5: setup
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
@Before
public void setup() {
exchange = mock(Exchange.class);
BindingOperationInfo boi = mock(BindingOperationInfo.class);
when(exchange.getBindingOperationInfo()).thenReturn(boi);
OperationInfo oi = mock(OperationInfo.class);
when(boi.getOperationInfo()).thenReturn(oi);
invokerBuilder = new UnitOfWorkInvokerFactory();
fooService = new FooService();
sessionFactory = mock(SessionFactory.class);
session = mock(Session.class);
when(sessionFactory.openSession()).thenReturn(session);
transaction = mock(Transaction.class);
when(session.getTransaction()).thenReturn(transaction);
when(transaction.getStatus()).thenReturn(TransactionStatus.ACTIVE);
}
示例6: previewMerge
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
@Sessional
@Override
public MergePreview previewMerge(PullRequest request) {
if (request.getMergeStrategy() != MergeStrategy.DO_NOT_MERGE) {
MergePreview lastPreview = request.getLastMergePreview();
if (request.isOpen() && !request.isMergeIntoTarget()
&& (lastPreview == null || lastPreview.isObsolete(request))) {
int priority = RequestCycle.get() != null?UI_PREVIEW_PRIORITY:BACKEND_PREVIEW_PRIORITY;
if (dao.getSession().getTransaction().getStatus() == TransactionStatus.ACTIVE) {
doAfterCommit(new Runnable() {
@Override
public void run() {
batchWorkManager.submit(getMergePreviewer(request), new Prioritized(priority));
}
});
} else {
batchWorkManager.submit(getMergePreviewer(request), new Prioritized(priority));
}
return null;
} else {
return lastPreview;
}
} else {
return null;
}
}
示例7: checkAsync
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
@Sessional
protected void checkAsync(PullRequest request) {
Long requestId = request.getId();
Subject subject = SecurityUtils.getSubject();
if (dao.getSession().getTransaction().getStatus() == TransactionStatus.ACTIVE) {
doUnitOfWorkAsyncAfterCommit(newCheckStatusRunnable(requestId, subject));
} else {
unitOfWork.doAsync(newCheckStatusRunnable(requestId, subject));
}
}
示例8: sendMailAsync
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
@Sessional
@Override
public void sendMailAsync(Collection<String> toList, String subject, String body) {
if (dao.getSession().getTransaction().getStatus() == TransactionStatus.ACTIVE) {
dao.doAsyncAfterCommit(newSendMailRunnable(toList, subject, body));
} else {
executorService.execute(newSendMailRunnable(toList, subject, body));
}
}
示例9: invoke
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
public Object invoke(MethodInvocation mi) throws Throwable {
if (persistManager.getSessionFactory() != null) {
unitOfWork.begin();
try {
Session session = unitOfWork.getSession();
if (session.getTransaction().getStatus() == TransactionStatus.ACTIVE) {
return mi.proceed();
} else {
Transaction tx = session.beginTransaction();
FlushMode previousMode = session.getFlushMode();
session.setFlushMode(FlushMode.COMMIT);
try {
Object result = mi.proceed();
tx.commit();
return result;
} catch (Throwable t) {
try {
tx.rollback();
} catch (Throwable t2) {
}
throw t;
} finally {
session.setFlushMode(previousMode);
}
}
} finally {
unitOfWork.end();
}
} else {
return mi.proceed();
}
}
示例10: search
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
public List<String> search(String productName){
try{ if(sessionFactory.getCurrentSession().getTransaction().getStatus() != TransactionStatus.ACTIVE)
sessionFactory.getCurrentSession().getTransaction().begin();
Query query = sessionFactory.getCurrentSession().createQuery("select name from Product where name like :name");
query.setString("name",productName + "%");
System.out.println(query.list().toString());
return query.list();
}catch(Exception e){
return null;
}
}
示例11: completeWorkflow
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
@Override
public void completeWorkflow() throws ProvisioningException {
Session session = null;
try {
if (this.cfgMgr.getProvisioningEngine().getHibernateSessionFactory() != null) {
session = this.cfgMgr.getProvisioningEngine().getHibernateSessionFactory().openSession();
session.beginTransaction();
DateTime now = new DateTime();
Workflows wf = session.load(Workflows.class, this.id);
wf.setCompleteTs(new Timestamp(now.getMillis()));
session.save(wf);
session.getTransaction().commit();
}
} finally {
if (session != null) {
if (session.getTransaction() != null && session.getTransaction().getStatus() == TransactionStatus.ACTIVE) {
session.getTransaction().rollback();
}
session.close();
}
}
}
示例12: rollbackIfNecessary
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
private void rollbackIfNecessary() {
if (transaction == null) {
return;
}
if(transaction.getStatus() != TransactionStatus.COMMITTED){
transaction.rollback();
}
}
示例13: close
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
@Override
public void close() throws IOException {
if (session.isOpen() && session.getTransaction().getStatus() == TransactionStatus.ACTIVE) {
session.getTransaction().rollback();
throw new IOException("Transaction not closed");
}
}
示例14: end
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
/**
* Ends hibernate session.
*
* @param ses Hibernate session.
* @param tx Cache ongoing transaction.
*/
private void end(Session ses, Transaction tx) {
// Commit only if there is no cache transaction,
// otherwise sessionEnd() will do all required work.
if (tx == null) {
org.hibernate.Transaction hTx = ses.getTransaction();
if (hTx != null && hTx.getStatus() == TransactionStatus.ACTIVE)
hTx.commit();
ses.close();
}
}
示例15: rollbackTransaction
import org.hibernate.resource.transaction.spi.TransactionStatus; //导入依赖的package包/类
private void rollbackTransaction(Session session, UnitOfWork uow) {
if (uow.transactional()) {
Transaction txn = session.getTransaction();
if (txn != null && session.getTransaction().getStatus() != TransactionStatus.ACTIVE) {
txn.rollback();
}
}
}