Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Java 休眠为什么我的对象会分离? Map myMap=newhashmap(); Query=session.createQuery(“”)+ “选择一个”+ “来自Articulo a”); List=query.List(); //将所有查询元素添加到hashmap 对于(对象:列表A){ put(entrada.getKey(),(Type)entrada); //键入someOtherObject=entrada.getReferenceProperty(); } 键入someObject=(Type)myMap.get(“someValidKey”).getReferenceProperty()//普通吸气剂_Java_Hibernate_Dictionary - Fatal编程技术网

Java 休眠为什么我的对象会分离? Map myMap=newhashmap(); Query=session.createQuery(“”)+ “选择一个”+ “来自Articulo a”); List=query.List(); //将所有查询元素添加到hashmap 对于(对象:列表A){ put(entrada.getKey(),(Type)entrada); //键入someOtherObject=entrada.getReferenceProperty(); } 键入someObject=(Type)myMap.get(“someValidKey”).getReferenceProperty()//普通吸气剂

Java 休眠为什么我的对象会分离? Map myMap=newhashmap(); Query=session.createQuery(“”)+ “选择一个”+ “来自Articulo a”); List=query.List(); //将所有查询元素添加到hashmap 对于(对象:列表A){ put(entrada.getKey(),(Type)entrada); //键入someOtherObject=entrada.getReferenceProperty(); } 键入someObject=(Type)myMap.get(“someValidKey”).getReferenceProperty()//普通吸气剂,java,hibernate,dictionary,Java,Hibernate,Dictionary,这里someObject出现null,对象被分离。但是,如果我取消注释someOtherObject行。已正确获取关系 发生了什么事?我看不到您的整个代码库,但在95%的情况下,您的对象被分离,因为您离开了事务上下文(或者您根本不在事务中) 从a: 一旦用于保存、加载、获取或查找实体的会话关闭,该实体就会分离。这意味着它不再连接到会话,并且与任何其他POJO一样工作 我看不到您的整个代码库,但在95%的情况下,您的对象会分离,因为您离开了事务上下文(或者您根本不在事务中) 从a: 一旦用于保存、

这里
someObject
出现
null
,对象被分离。但是,如果我取消注释
someOtherObject
行。已正确获取关系


发生了什么事?

我看不到您的整个代码库,但在95%的情况下,您的对象被分离,因为您离开了事务上下文(或者您根本不在事务中)

从a:

一旦用于保存、加载、获取或查找实体的会话关闭,该实体就会分离。这意味着它不再连接到会话,并且与任何其他POJO一样工作


我看不到您的整个代码库,但在95%的情况下,您的对象会分离,因为您离开了事务上下文(或者您根本不在事务中)

从a:

一旦用于保存、加载、获取或查找实体的会话关闭,该实体就会分离。这意味着它不再连接到会话,并且与任何其他POJO一样工作


我发现了问题。在我的代码中,我调用了session.clear()。这导致我的所有实体都被分离。

我发现了问题。在我的代码中,我调用了session.clear()。这导致我的所有实体都被分离。

它们实际上是用相同的方法吗?这一区别非常重要。我猜不会,因为您发布的代码中没有定义
codLineas
。@rmlan抱歉,我在简化代码,但没有定义。我现在编辑了它。代码都是同一个方法的一部分。它们实际上是在同一个方法中吗?这一区别非常重要。我猜不会,因为您发布的代码中没有定义
codLineas
。@rmlan抱歉,我在简化代码,但没有定义。我现在编辑了它。代码都是同一个方法的一部分。我没有显式关闭会话。它会自动关闭有什么原因吗?或者它在事务中,但
ReferenceProperty
是复杂对象,默认情况下无法初始化。请参阅
获取类型EAGER/LAZY
。顺便说一句,entrada.getReferenceProperty()可以进行其他查询,因此您可以看到该对象已附加。您使用的是
@Transactional
?为了进一步帮助您,您需要向我们展示更多代码。我没有明确关闭会话。它会自动关闭有什么原因吗?或者它在事务中,但
ReferenceProperty
是复杂对象,默认情况下无法初始化。请参阅
获取类型EAGER/LAZY
。顺便说一句,entrada.getReferenceProperty()可以进行其他查询,因此您可以看到该对象已附加。您使用的是
@Transactional
?为了进一步帮助您,您需要向我们显示更多代码。遇到同样的问题
session.clear()
在显式刷新实体的“flushService”中调用!遇到相同的问题<代码>会话.clear()在显式刷新实体的“flushService”中调用
Map<String, Type> myMap = new HashMap<String, Type>();

Query query = session.createQuery("" +
        "SELECT a " +
        "FROM Articulo a ");
List<Object> list = query.list();

// Add all query elements to the hashmap
for (Object entrada : lista) {
    myMap.put(entrada.getKey(), (Type) entrada);
// Type someOtherObject = entrada.getReferencedProperty();
}

Type someObject = (Type) myMap.get("someValidKey").getReferencedProperty(); //normal getter