繁体   English   中英

Hibernate:session.get(EntityName.class,Id)和使用Criteria之间的区别

[英]Hibernate: difference between session.get(EntityName.class, Id) and using Criteria

到目前为止,我已经看到了两种从数据库中检索对象的方法(例如MySQL),一种是session.get(EntityName.class, Id); 另一种方式是: criteria.add(Restrictions.eq('id', Id)).uniqueResult();

当我想要更新对象中的单个字段时,我发现第一种方便,我可以使用setter更新对象然后提交事务,但我不确定这两种方式之间有什么区别。

Session.get()

如果实例已与会话关联,则返回该实例。

标准总是去数据库以获取特定行。 除此之外,你可以找到的主要区别是喜欢criteria queries动态查询。

考虑那种情况

criteria.add(Restrictions.eq('this', that)).uniqueResult();
criteria.add(Restrictions.eq('this', that)).uniqueResult();
criteria.add(Restrictions.eq('this', that)).uniqueResult();
criteria.add(Restrictions.eq('this', that)).uniqueResult();
-----
criteria.uniqueResult();

你看到那里.... ?? 限制太多了吗? get()无法实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM