📄 scheduledinsertion.java
字号:
//$Id: ScheduledInsertion.java,v 1.5.2.8 2003/11/02 04:26:43 oneovthafew Exp $package net.sf.hibernate.impl;import java.io.Serializable;import net.sf.hibernate.HibernateException;import net.sf.hibernate.engine.SessionImplementor;import net.sf.hibernate.persister.ClassPersister;final class ScheduledInsertion extends ScheduledEntityAction implements SessionImpl.Executable{ private final Object[] state; private CacheEntry cacheEntry; public ScheduledInsertion(Serializable id, Object[] state, Object instance, ClassPersister persister, SessionImplementor session) throws HibernateException { super(session, id, instance, persister); this.state = state; } public void execute() throws HibernateException { ClassPersister persister = getPersister(); SessionImplementor session = getSession(); Object object = getInstance(); // Don't need to lock the cache here, since if someone // else inserted the same pk first, the insert would fail persister.insert( getId(), state, object, session ); session.postInsert(object); if ( persister.hasCache() ) { cacheEntry = new CacheEntry(object, persister, session); persister.getCache().insert( getId(), cacheEntry ); } } //Make 100% certain that this is called before any subsequent ScheduledUpdate.afterTransactionCompletion()!! public void afterTransactionCompletion(boolean success) throws HibernateException { if (success) { ClassPersister persister = getPersister(); if ( persister.hasCache() ) persister.getCache().afterInsert( getId(), cacheEntry ); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -