📄 scheduledinsertion.java
字号:
//$Id: ScheduledInsertion.java,v 1.5.2.9 2003/12/16 12:13:47 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(); Serializable id = getId(); // Don't need to lock the cache here, since if someone // else inserted the same pk first, the insert would fail persister.insert(id, state, object, session); session.postInsert(object); if ( persister.hasCache() && !persister.isCacheInvalidationRequired() ) { cacheEntry = new CacheEntry(object, persister, session); persister.getCache().insert(id, cacheEntry); } } //Make 100% certain that this is called before any subsequent ScheduledUpdate.afterTransactionCompletion()!! public void afterTransactionCompletion(boolean success) throws HibernateException { ClassPersister persister = getPersister(); if ( success && persister.hasCache() && !persister.isCacheInvalidationRequired() ) { persister.getCache().afterInsert( getId(), cacheEntry ); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -