Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 是一级缓存中的对象_Hibernate_Nhibernate_Caching - Fatal编程技术网

Hibernate 是一级缓存中的对象

Hibernate 是一级缓存中的对象,hibernate,nhibernate,caching,Hibernate,Nhibernate,Caching,如何确定某个HibernateProxy是否在一级缓存中 代码大致相同 for (HibernateObject obj : objects) { if (HibernateUtils.isHibernateProxyInCache( obj.getExpensiveLazyObject()) ) { display(obj.getExpensiveLazyObject()); } else { display("click

如何确定某个
HibernateProxy
是否在一级缓存中

代码大致相同

for (HibernateObject obj : objects) {
    if (HibernateUtils.isHibernateProxyInCache(
        obj.getExpensiveLazyObject())
    ) {
        display(obj.getExpensiveLazyObject());
    } else {
        display("click here to see expensive lazy object");
    }
}

我需要的代码是HibernateUtils.isHibernateProxyInCache,但我不知道如何实现它。

我想您正在寻找


调用HibernateUtils.isHibernateProxyInCache(obj.getExpensiveLazyObject())会将代理初始化为昂贵的惰性对象,因此您的方法将始终返回true。

您是说只要调用
getX
就会初始化代理吗?你能给我一个说明这一点的文件的链接吗?因此,如果我理解正确,我需要执行
Hibernate.isPropertyInitialized(obj,“expensiveLazyObject”)
,对吗?抱歉,我误解了。您可能只需要Hibernate.isInitialized(obj.getExpensiveLazyObject())。谢谢。但我不确定我是否理解“初始化”的含义。你能让我看一下这些文件吗?我不确定“initialized”是否表示“在一级缓存中”。initialized表示“代理已初始化”。最初,实体的代理仅保留实体的ID。一旦调用代理对象上的任何方法,它首先从数据库加载实际实体实例及其所有字段,然后委托给该实体实例以执行该方法。初始化表示“实体状态已从数据库加载”。如果代理仍然连接到其Hibernate会话,则初始化的代理应该在缓存中。如果它不是您需要的,那么请详细说明,并查看会话中包含的方法。