分离对象时的Hibernate良好实践

时间:2011-06-10 12:45:42

标签: hibernate coding-style persistence

构建一个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;

1 个答案:

答案 0 :(得分:2)

您无需分离对象。 Hibernate实体是POJO,并且在事务结束时不会丢失。会话关闭后,它们会自动分离。但是你仍然可以使用then并访问他们的数据,除非数据被标记为延迟加载并且在附加实体时没有被提取。