入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

Hibernate中Entity对象的重新加载refresh

创建时间:2016-06-16 投稿人: 浏览次数:1198

Hibernate中处于managed/persistent状态的Entity对象可以通过持久化上下文的refresh()方法,重新加载数据库中的数据。

这往往发生在持久化上下文中的Entity对象已经过时,数据库中对应的记录被其他持久化上下文修改的情况下。

Hibernate Native API示例如下:

Person person = session.byId( Person.class ).load( personId );

session.doWork( connection -> {
    try(Statement statement = connection.createStatement()) {
        statement.executeUpdate( "UPDATE person SET name = UPPER(name)" );
    }
} );

session.refresh( person );

JPA API示例如下:

Person person = entityManager.find( Person.class, personId );

entityManager.createQuery( "update Person set name = UPPER(name)" ).executeUpdate();

entityManager.refresh( person );


执行重新加载时,通常只重新加载Entity对象中的属性值;如果Entity对象的关联被声明为REFRESH,则被关联的Entity对象也将被重新加载。

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。