【发布时间】:2013-10-30 17:47:03
【问题描述】:
我注意到我们的高级开发人员使用以下代码通过 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);
【问题讨论】:
-
我猜这是用旧的休眠版本开发的。我认为 hibernate 3.4 以后支持 getSession()。
-
也许他还想根据 Robert C. Martin 的“清洁代码”一书保持代码“清洁”,而不是在一行代码上编写多个语句。