|
|
1
5
Hibernate也会迭代结果集,因此内存中只保留一行。这是默认设置。如果它贪婪地装载,你必须告诉它。 使用Hibernate的理由:
原因 不 要使用Hibernate:
|
|
|
2
3
Hibernate提供了一些保持会话小的可能性。 您可以使用Query.scroll()、Criteria.scroll()进行类似JDBC的滚动。您可以使用Session.evic(对象实体)从会话中删除实体。您可以使用无状态会话来抑制脏检查。还有一些性能优化,请参阅Hibernate文档。 |
|
|
3
2
Hibernate和任何ORM框架一样,旨在基于面向对象编程原理开发和维护系统。但大多数数据库都是关系型的,而不是面向对象的,因此在任何情况下,ORM都是方便的OOP编程和优化/最有效的数据库访问之间的权衡。 我不会将ORM用于特定的孤立任务,而是将其作为应用程序持久层的总体架构选择。 |
|
|
4
1
在我看来,我会 不是 使用Hibernate,因为它会使你的应用程序变得更大,更难维护,而且你真的没有机会快速优化生成的sql脚本。 此外,您可以使用JDBC桥支持的所有SQL功能,而不限于休眠功能。另一件事是,每一层遗留代码都有局限性。 但归根结底,这是一个哲学问题,你应该按照最适合你的思维方式去做。 |
|
|
5
0
如果可能存在性能问题,请继续使用JDBC代码。 有许多众所周知的纯SQL优化 这在Hibernate中很难做到。 只选择您使用的列!(没有“选择*”的东西)。 尽可能保持SQl的简洁性。例如,不要在连接中包含货币代码等小型参考表。相反,将货币表加载到内存中,并使用程序查找来解析货币描述。 根据DBMS的不同,对SQL进行轻微的重新排序,谓词会对性能产生重大影响。 如果你正在更新/插入,则只提交每100到1000次更新。也就是说,不要提交每一个工作单元,但要保留一些计数器,这样你就可以减少提交的频率。 利用数据库的聚合功能。如果您希望按DEPT代码进行总计,请在SQL中使用“SUM(amount)…GROUP by DEPT”。 |
|
|
TheKing · 为什么数组的地址可以有负值? 3 年前 |
|
|
yurnero · MATLAB:“加载”一个快速访问功能 7 年前 |
|
|
joe · 一页可以同时在两个工作集中吗? 7 年前 |
|
|
Jaques · “.exe”已触发断点 7 年前 |
|
|
adn bps · 在函数中修改变量的高效内存方法 7 年前 |
|
Gauraang Khurana · C语言中分段错误的不稳定行为 7 年前 |
|
|
Rajesh K · 如何查找设备中存在的广告垃圾? 7 年前 |