繁体   English   中英

Hibernate findById或SQL查询

[英]Hibernate findById or sql query

我有很多时间场景,我只想访问一个/两个/或一些列,而我们正在使用休眠模式,所以我想知道哪种性能更好

1)通过获取hibernate的findById方法,这对我来说非常方便,因为我只能调用它,但是我认为它的性能不好,因为它将获取所有列,而我只需要其中一些。

2)或通过每次创建乏味的查询来创建,但性能会更好

所以我想建议我应该使用什么?

为了更具体地回答,如果您包含一个代码片段,将很有帮助。 但总的来说,findById是一种便捷的方法,它会导致查询与您自己编写的查询非常相似。 因此,就性能而言,自己编写查询并仅返回所需的列(构造函数表达式很有用)会更好。 我要问的问题是,改进的性能值得更复杂的代码吗? 您以后总是可以优化查询。

它完全取决于要加载的实体。 如果实体是一个实体,具有很多关系,并且您需要的只是根实体中的几个字段,那么绝对值得编写自己的查询,因为Hibernate会使用JOIN生成查询来加载该实体,这可能会非常昂贵。 这里要考虑的另一件事是,您始终可以使用LAZYEAGER加载来处理正在加载的字段,但是这些设置是静态的,并将永久应用于您的实体。
另一方面,如果实体没有很多关系,我认为最昂贵的部分是数据库与应用程序之间的对话时间,因此可以忽略加载许多额外的字段。

暂无
暂无

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

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