我正在使用Hibernate 3编写Web应用程序。
所以,过了一会儿,我注意到有些东西很慢。因此,我测试了Hibernate
Profiler,发现Hibernate将无理地进行许多数据库调用以简化操作。原因当然是我加载了一个对象(该对象有几个“父母”),而这些“父母”还有其他“父母”。因此,即使我只需要基本对象,从根本上来说,hibernate都会加载它们。好的,所以我研究了延迟加载。这使我进入了Lazyloading-
exception,因为我有一个MVC webapp。
所以,现在我对我的最佳处理方法有些困惑。基本上,我所需要做的只是更新对象上的单个字段。我已经有了对象键。
我应该:1.深入研究延迟加载。然后重写我的应用程序以进行开放会话视图?2.挖掘延迟加载。然后改写我的Dao的更具体。例如编写DAO方法,该方法将仅返回实例化的对象,而每个用例都需要什么?可能有很多额外的方法…
3.从头开始hibernate并自己做吗?4. Cant现在真的在考虑其他解决方案。有什么建议么?
最佳做法是什么?
Book b = (Book) session.load(Book.class, bookId); Author a = (Author) session.load(Author.class, authorId); b.setAuthor(a); session.save(b);
使用命名查询(在hbm文件或@NamedQuery中),以便在每次查询期间都不会解析它们。除非需要,否则不要使用Criteria API(在这种情况下,无法使用PreparedStatement缓存)
在您的Web应用程序中使用OSIV,因为它仅在/需要时才加载数据
session.setReadOnly(object, true)
。这将使Hibernate不在持久化上下文中保留所选实体的原始快照,以进行进一步的脏检查。c3p0.max_statements
以启用池中的PreparedStatment缓存,并启用数据库的语句缓存(如果默认情况下已关闭)。setMaxResults()
,setFirstResult()
)与包含对集合的联接的查询一起使用,这将导致所有记录从数据库中拉出,并且分页将在Hibernate中发生在内存中。如果要分页,理想情况下不应该使用联接。如果您无法摆脱它,请再次使用批量获取。其实有很多技巧,但是我现在还记得不多。
问题内容: 我有问题,也许有人认为它很愚蠢。Hibernate快吗?我在系统中使用它,对数据库的查询非常多。并且性能变得警觉。和其他问题脱离当前背景。有什么更好的选择- 许多简单查询(使用单个表)还是较少一些查询的查询? 先进的坦克的Artem 问题答案: 首先,您可以做很多事情来加快Hibernate的速度。查阅这些高性能hibernate技巧文章,以全面了解可以采取哪些措施来加快数据访问层的速
Overview This article discusses performance and reliability best practices for Express applications deployed to production. This topic clearly falls into the “devops” world, spanning both traditional
性能与体验是前端的核心竞争力,是最直观反应页面是否好用、易用的标准。用户花在页面上的时间不应该是在等待页面加载和响应,而是使用和顺畅浏览的时间,因此如何提升页面性能和体验,让页面更快的可交互、浏览滚动更顺畅,是需要你持续的研究、优化、推进的。在 Rax 不断应用发展以及成熟的过程中,沉淀总结了一系列的性能体验的措施和最佳实践,通过这些,可以帮助你大幅提高页面的各项性能。 加载性能 统计口径 加载性
问题内容: 使用Hibernate在数据库中存储IP地址的最佳类型是什么? 我虽然是Byte []或String,但是有没有更好的方法,或者您使用什么呢? 问题答案: 我将其存储在很 长 很 长的时间内 以进行查找。您可以使用以下功能进行转换。 还有这个 您可能需要通过检查参数来改进它们。
问题内容: 我们刚刚完成了对我们的应用程序的分析。(她开始慢了)。问题似乎是“处于hibernate状态”。 这是旧版映射。谁在工作,那是工作。后面的关系Shema也可以。 但是有些请求实在太慢了。 因此,对于因hibernate而导致的常见错误和常见错误的任何输入,最终都会导致响应缓慢,我们将不胜感激。 例子:渴望代替懒惰可以大大改变响应时间…。 编辑:通常,阅读手册通常是一个好主意。整个章节在
问题内容: 我有一个Spring和Hibernate3在生产中运行良好的应用程序。以下是Spring的applicationContext.xml中会话工厂的配置 生产正常。 现在,对于另一个项目,我们正在迁移到Hibernate4。我们使用org.springframework.orm.hibernate4。*包中的Hibernate 4的SessionFactory,TransacionMan