构建一个hibernate查询后,我的代码如下:
@SuppressWarnings("unchecked")
List<SendCommands> list = query.list();
session.evict( list );
if( list.isEmpty() )
return null;
SendCommands dst = list.get( 0 );
return dst;
此示例的“好”做法是什么:
1)分离(驱逐)整个结果集,然后返回该集合的第一个对象,或
2)仅拆除(驱逐)集合中的第一个对象:
@SuppressWarnings("unchecked")
List<SendCommands> list = query.list();
if ( list.isEmpty() )
return null;
SendCommands dst = list.get( 0 );
session.evict( dst );
return dst;
答案 0 :(得分:2)
您无需分离对象。 Hibernate实体是POJO,并且在事务结束时不会丢失。会话关闭后,它们会自动分离。但是你仍然可以使用then并访问他们的数据,除非数据被标记为延迟加载并且在附加实体时没有被提取。