Hibernate---session

Session 用于获取与数据库的物理链接。 Session 对象是轻量级的,而且设计为在每次须要与数据库进行交互时被实例化。持久态对象被保存,并经过 Session 对象检索找回。数据库

该 Session 对象不该该长时间保持开放状态,由于它们一般不能保证线程安全,而应该根据需求被建立和销毁。Session 的主要功能是为映射实体类的实例提供建立,读取和删除操做。这些实例可能在给定时间点时存在于如下三种状态之一:安全

  • 瞬时状态: 一种新的持久性实例,被 Hibernate 认为是瞬时的,它不与 Session 相关联,在数据库中没有与之关联的记录且无标识符值。
  • 持久状态:能够将一个瞬时状态实例经过与一个 Session 关联的方式将其转化为持久状态实例。持久状态实例在数据库中没有与之关联的记录,有标识符值,并与一个 Session 关联。
  • 脱管状态:一旦关闭 Hibernate Session,持久状态实例将会成为脱管状态实例。

瞬时状态就是刚new出来一个对象,尚未被保存到数据库中,持久化状态就是已经被保存到数据库中,离线状态就是数据库中有,可是session中不存在该对象。若 Session 实例的持久态类别是序列化的,则该 Session 实例是序列化的。若是 Session 引起异常,则事务必须被回滚,该 session 必须被丢弃。session

Session接口经常使用方法spa

  • Transaction beginTransaction()

  开始工做单位,并返回关联事务对象。线程

  • void cancelQuery()

  取消当前的查询执行。设计

  • void clear()

  彻底清除该会话。对象

  • Connection close()

  经过释放和清理 JDBC 链接以结束该会话。接口

  • Criteria createCriteria(Class persistentClass)

  为给定的实体类或实体类的超类建立一个新的 Criteria 实例。事务

  • Criteria createCriteria(String entityName)

  为给定的实体名称建立一个新的 Criteria 实例。字符串

  • Serializable getIdentifier(Object object)

  返回与给定实体相关联的会话的标识符值。

  • Query createFilter(Object collection, String queryString)

  为给定的集合和过滤字符建立查询的新实例。

  • Query createQuery(String queryString)

  为给定的 HQL 查询字符建立查询的新实例。

  • SQLQuery createSQLQuery(String queryString)

  为给定的 SQL 查询字符串建立 SQLQuery 的新实例。

  • void delete(Object object)

  从数据存储中删除持久化实例。

  • void delete(String entityName, Object object)

  从数据存储中删除持久化实例。

  • Session get(String entityName, Serializable id)

  返回给定命名的且带有给定标识符或 null 的持久化实例(若无该种持久化实例)。

  • SessionFactory getSessionFactory()

  获取建立该会话的 session 工厂。

  • void refresh(Object object)

  从基本数据库中从新读取给定实例的状态。

  • Transaction getTransaction()

  获取与该 session 关联的事务实例。

  • boolean isConnected()

  检查当前 session 是否链接。

  • boolean isDirty()

  该 session 中是否包含必须与数据库同步的变化?

  • boolean isOpen()

  检查该 session 是否仍处于开启状态。

  • Serializable save(Object object)

  先分配一个生成的标识,以保持给定的瞬时状态实例。

  • void saveOrUpdate(Object object)

  保存(对象)或更新(对象)给定的实例。

  • void update(Object object)

  更新带有标识符且是给定的处于脱管状态的实例的持久化实例。

  • void update(String entityName, Object object)

  更新带有标识符且是给定的处于脱管状态的实例的持久化实例。

相关文章
相关标签/搜索