⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 session.java

📁 通过系统把几乎所有与人力资源相关的数据统一管理
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
//$Id: Session.java,v 1.19.2.18 2004/01/25 03:54:13 oneovthafew Exp $package net.sf.hibernate;import net.sf.hibernate.type.Type;import java.io.Serializable;import java.sql.Connection;import java.util.Collection;import java.util.Iterator;import java.util.List;/** * The main runtime interface between a Java application and Hibernate. This is the * central API class abstracting the notion of a persistence service.<br> * <br> * The lifecycle of a <tt>Session</tt> is bounded by the beginning and end of a logical * transaction. (Long transactions might span several database transactions.)<br> * <br> * The main function of the <tt>Session</tt> is to offer create, find and delete operations * for instances of mapped entity classes. Instances may exist in one of two states:<br> * <br> * <i>transient:</i> not associated with any <tt>Session</tt><br> * <i>persistent:</i> associated with a <tt>Session</tt><br> * <br> * Transient instances may be made persistent by calling <tt>save()</tt>, * <tt>update()</tt> or <tt>saveOrUpdate()</tt>. Persistent instances may be made transient * by calling<tt> delete()</tt>. Any instance returned by a <tt>find(), iterate()</tt> or * <tt>load()</tt> method is persistent.<br> * <br> * <tt>save()</tt> results in an SQL <tt>CREATE</tt>, <tt>delete()</tt> * in an SQL <tt>DELETE</tt> and <tt>update()</tt> in an SQL <tt>UPDATE</tt>. Changes to * <i>persistent</i> instances are detected at flush time and also result in an SQL * <tt>UPDATE</tt>.<br> * <br> * It is not intended that implementors be threadsafe. Instead each thread/transaction * should obtain its own instance from a <tt>SessionFactory</tt>.<br> * <br> * A <tt>Session</tt> instance is serializable if its persistent classes are serializable.<br> * <br> * A typical transaction should use the following idiom: * <pre> * Session sess = factory.openSession(); * Transaction tx; * try { *     tx = sess.beginTransaction(); *     //do some work *     ... *     tx.commit(); * } * catch (Exception e) { *     if (tx!=null) tx.rollback(); *     throw e; * } * finally { *     sess.close(); * } * </pre> * <br> * If the <tt>Session</tt> throws an exception, the transaction must be rolled back * and the session discarded. The internal state of the <tt>Session</tt> might not * be consistent with the database after the exception occurs. * * @see SessionFactory * @author Gavin King */public interface Session extends Serializable {		/**	 * Force the <tt>Session</tt> to flush. Must be called at the end of a	 * unit of work, before commiting the transaction and closing the	 * session (<tt>Transaction.commit()</tt> calls this method). <i>Flushing</i>	 * is the process of synchronising the underlying persistent store with	 * persistable state held in memory.	 *	 * @throws HibernateException	 */	public void flush() throws HibernateException;		/**	 * Set the flush mode. The flush mode determines at which points	 * Hibernate automatically flushes the session. For a readonly	 * session, it is reasonable to set the flush mode to	 * <tt>FlushMode.NEVER</tt> at the start of the session (in	 * order to achieve some extra performance).	 *	 * @see FlushMode	 * @param flushMode the FlushMode	 */	public void setFlushMode(FlushMode flushMode);		/**	 * Get the current flush mode.	 *	 * @return FlushMode	 */	public FlushMode getFlushMode();		/**	 * Get the <tt>SessionFactory</tt> that created this instance.	 * @see SessionFactory	 */	public SessionFactory getSessionFactory();		/**	 * Get the JDBC connection. Applications are responsible for	 * calling commit/rollback upon the connection before closing	 * the <tt>Session</tt>.	 *	 * @return the JDBC connection in use by the <tt>Session</tt>	 * @throws HibernateException if the <tt>Session</tt> is disconnected	 */	public Connection connection() throws HibernateException;		/**	 * Disconnect the <tt>Session</tt> from the current JDBC connection. If	 * the connection was obtained by Hibernate, close it or return it to the	 * connection pool. Otherwise return it to the application.<br>	 * <br>	 * This is used by applications which require long transactions.	 *	 * @return the connection provided by the application or <tt>null</tt>	 * @throws HibernateException if the <tt>Session</tt> is disconnected	 * @see Session#reconnect()	 */	public Connection disconnect() throws HibernateException;		/**	 * Obtain a new JDBC connection. This is used by applications which	 * require long transactions.	 *	 * @see Session#disconnect()	 * @throws HibernateException	 */	public void reconnect() throws HibernateException;		/**	 * Reconnect to the given JDBC connection. This is used by applications	 * which require long transactions.	 *	 * @param connection a JDBC connection	 * @throws HibernateException if the <tt>Session</tt> is connected	 * @see Session#disconnect()	 */	public void reconnect(Connection connection) throws HibernateException;		/**	 * End the <tt>Session</tt> by disconnecting from the JDBC connection and	 * cleaning up. It is not strictly necessary to <tt>close()</tt> the	 * <tt>Session</tt> but you must at least <tt>disconnect()</tt> it.	 *	 * @return the connection provided by the application	 * or <tt>null</tt>	 * @throws HibernateException	 */	public Connection close() throws HibernateException;		/**	 * Cancel execution of the current query. May be called from one thread	 * to stop execution of a query in another thread. Use with care!	 */	public void cancelQuery() throws HibernateException;		/**	 * Check if the <tt>Session</tt> is still open.	 *	 * @return boolean	 */	public boolean isOpen();		/**	 * Check if the <tt>Session</tt> is currently connected.	 *	 * @return boolean	 */	public boolean isConnected();		/**	 * Does this <tt>Session</tt> contain any changes which must be	 * synchronized with the database? Would any SQL be executed if	 * we flushed this session?	 * 	 * @return boolean	 */	public boolean isDirty() throws HibernateException;		/**	 * Return the identifier of an entity instance cached by the <tt>Session</tt>, or	 * throw an exception if the instance is transient or associated with a different	 * <tt>Session</tt>.	 *	 * @param object a persistent instance	 * @return the identifier	 * @throws HibernateException if the <tt>Session</tt> is connected	 */	public Serializable getIdentifier(Object object) throws HibernateException;	/**	 * Check if this instance is associated with this <tt>Session</tt>.	 * 	 * @param object an instance of a persistent class	 * @return true if the given instance is associated with this <tt>Session</tt>	 */	public boolean contains(Object object);	/**	 * Remove this instance from the session cache. Changes to the instance will	 * not be synchronized with the database.	 * 	 * @param object a persistent instance	 * @throws HibernateException	 */	public void evict(Object object) throws HibernateException;		/**	 * Return the persistent instance of the given entity class with the given identifier,	 * obtaining the specified lock mode, assuming the instance exists.	 *	 * @param theClass a persistent class	 * @param id a valid identifier of an existing persistent instance of the class	 * @param lockMode the lock level	 * @return the persistent instance or proxy	 * @throws HibernateException	 */	public Object load(Class theClass, Serializable id, LockMode lockMode) throws HibernateException;		/**	 * Return the persistent instance of the given entity class with the given identifier,	 * assuming that the instance exists.	 * <br><br>	 * You should not use this method to determine if an instance exists (use <tt>find()</tt>	 * instead). Use this only to retrieve an instance that you assume exists, where non-existence	 * would be an actual error.	 *	 * @param theClass a persistent class	 * @param id a valid identifier of an existing persistent instance of the class	 * @return the persistent instance or proxy	 * @throws HibernateException	 */	public Object load(Class theClass, Serializable id) throws HibernateException;		/**	 * Read the persistent state associated with the given identifier into the given transient 	 * instance.	 *	 * @param object an "empty" instance of the persistent class	 * @param id a valid identifier of an existing persistent instance of the class	 * @throws HibernateException	 */	public void load(Object object, Serializable id) throws HibernateException;		/**	 * Persist all reachable transient objects, reusing the current identifier 	 * values.	 * 	 * @param object a transient instance of a persistent class	 */	public void replicate(Object object, ReplicationMode replicationMode) throws HibernateException;		/**	 * Persist the given transient instance, first assigning a generated identifier. (Or	 * using the current value of the identifier property if the <tt>assigned</tt>	 * generator is used.)	 *	 * @param object a transient instance of a persistent class	 * @return the generated identifier	 * @throws HibernateException	 */	public Serializable save(Object object) throws HibernateException;		/**	 * Persist the given transient instance, using the given identifier.	 *	 * @param object a transient instance of a persistent class	 * @param id an unused valid identifier	 * @throws HibernateException	 */	public void save(Object object, Serializable id) throws HibernateException;		/**	 * Either <tt>save()</tt> or <tt>update()</tt> the given instance, depending upon the value of	 * its identifier property. By default the instance is always saved. This behaviour may be	 * adjusted by specifying an <tt>unsaved-value</tt> attribute of the identifier property	 * mapping.	 *	 * @see Session#save(java.lang.Object)	 * @see Session#update(Object object, Serializable id)	 * @param object a transient instance containing new or updated state	 * @throws HibernateException	 */	public void saveOrUpdate(Object object) throws HibernateException;		/**	 * Update the persistent instance with the identifier of the given transient	 * instance. If there is a persistent instance with the same identifier,	 * an exception is thrown.<br>	 * <br>	 * If the given transient instance has a <tt>null</tt> identifier, an exception	 * will be thrown.<br>	 * <br>	 *	 * @param object a transient instance containing updated state	 * @throws HibernateException	 */	public void update(Object object) throws HibernateException;		/**	 * Update the persistent state associated with the given identifier. An exception	 * is thrown if there is a persistent instance with the same identifier in the	 * current session.<br>	 * <br>	 *	 * @param object a transient instance containing updated state	 * @param id identifier of persistent instance	 * @throws HibernateException	 */	public void update(Object object, Serializable id) throws HibernateException;		/**	 * Copy the state of the given object onto the persistent object with the same	 * identifier. If there is no persistent instance currently associated with 	 * the session, it will be loaded. Return the persistent instance. If the 	 * given instance is unsaved or does not exist in the database, save it and 	 * return it as a newly persistent instance. Otherwise, the given instance	 * does not become associated with the session.	 * 	 * @param object a transient instance with state to be copied	 * @return an updated persistent instance	 */	public Object saveOrUpdateCopy(Object object) throws HibernateException;		/**	 * Copy the state of the given object onto the persistent object with the 	 * given identifier. If there is no persistent instance currently associated 	 * with the session, it will be loaded. Return the persistent instance. If	 * there is no database row with the given identifier, save the given instance

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -