现在的位置: 首页 > 综合 > 正文

hibernate 笔记二

2012年09月03日 ⁄ 综合 ⁄ 共 636字 ⁄ 字号 评论关闭

一、Session中的函数:

  1、session中的函数get(Class args0,Serializable args1),获取数据库中获取类实例按照主键查找args1,load(Class args0,serializable args1)具有同样的功能,只不过load采用懒加载机制,在问访问load返回数据之前是不访问数据库的,load返回的对象从不为空。 

  2、函数persist()与save()都是保存对象的功能,区别是:save()在没有开启事物的情况下会将数据插入数据库,之后数据库回滚将数据删除、而persist不会插入数据。在开启事物的情况下,persist()与save()功能相同。

二、实体对象的三种状态:

  瞬时状态(Transient)、持久状态(Persistent)、脱管状态(Detached)。

  对象处于那种状态与session和数据库之间的关系决定。

  (1)对象如果和session没有关联并且数据库中不存在与之对应的数据存储,那么对象处于瞬时状态。

  (2)对象如果和session有关联但数据库中还未存在与之对应的数据,那么对象处于托管状态。

  (3)对象如果和session有关联并且数据库中已经存在与之对应的数据,那么对象处于持久状态。

  三种状态之间的转换图如下:

    

三、如果实体类名或属性名与数据库的关键字冲突:

  (1)利用~将冲突的关键字括起来。

  (2)改表名(hibernate创建表时起的名字)、属性名。

抱歉!评论已关闭.