在Hibernate中通过ID获取对象

时间:2013-10-30 17:47:03

标签: java hibernate orm

我注意到我们的高级开发人员使用以下代码按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);

1 个答案:

答案 0 :(得分:11)

这两段代码不相同。

session.load(Source.class, id);
如果没有标识为Source的{​​{1}}实体,

抛出异常

id
如果没有标识为getSession().get(Source.class, id); 的{​​{1}}实体,

将返回null

相关问题