Loading...

记第一天学习hibernate,嘻嘻

avatar

JimXu

2019-09-04

JAVA

Hibernate三种状态:

#####1、 瞬时状态(临时状态):我们在内存中创建的数据对象,跟Session对象以及数据库没有任何关系。 #####2、 持久状态:通过Session到数据库中获取的对应数据,以及save保存的数据对象。数据对象和Session、数据库保持联系。 #####3、 游离状态(脱管状态):将数据从持久状态通过evict()、clear()、close()转成游离状态。就意味着游离状态和Session对象没有关系。在数据库中存在对应的 数据。


session.evict(数据对象); //表示将数据对象从session对象中剥离。 session.clear(); //清空session中的所有缓存数据对象。 session.close(); //关闭session对象。

Hibernate查询机制:Hibernate会将查询到数据自动缓存(快照)。

脏对象:我们将持久状态的数据进行了更改。 脏检查:session在刷新缓存的时候,会进行脏检查,也就拿内存中的对象和快照的数据进行对比, 判断数据是否发生变化,以生成对应的SQL语句。

刷新缓存: session.flush(); 一般使用commit()的时候会自动调用flush();

瞬时状态和游离状态数据的更新: session.update(数据对象); //通过数据主键直接生成Update语句 session.saveOrUpdate(数据对象); //如果数据对象存在主键数据,那么执行更新。如果 //不存在主键数据则执行insert语句 session.merge(数据对象); //会判断当前数据和数据库中的数据是否一致,如果不一致 //则update,否则不执行任何操作。

Leave a message

tips:Your personal homepage URL will be publicly linked, but your email address will not be publicly displayed; your IP address will be saved, but only your current city name will be publicly displayed.

comment



Other article