我注意到我们的高级开发人员使用以下代码按ID检索实体:
@Override
public Source get(Long id) {
Session session = getSession();
if( session == null )
session = sessionFactory.openSession();
final Source source = (Source)session.load(Source.class, id);
Hibernate.initialize(source);
return source;
}
此代码有什么好处?
为什么不简单地写
return (Soruce) getSession().get(Source.class, id);
答案 0 :(得分:11)
这两段代码不相同。
session.load(Source.class, id);
如果没有标识为Source
的{{1}}实体,将抛出异常。
id
如果没有标识为getSession().get(Source.class, id);
的{{1}}实体,将返回null 。