我一直在使用 JSF 和 PrimeFaces 开发一个网站。在开发时,我注意到任何 Web 应用程序都有 2 个瓶颈。如我错了请纠正我。
瓶颈是:
我已经将 Hibernate 框架用于持久层。现在,如果数据库中发生更改,则无法在作用域 bean 中反映该更改。Hibernate 具有动态更新属性,它有助于仅更新表中受影响的记录[在持久化时]。但是我还没有找到类似的机制,我总是可以通过它来获取更新的 DAO。在这里,开发人员必须负责通过使用
session.refresh()
方法来更新它们,该方法只是从数据库表中重新加载整个对象树。因此,对于每个小的数据库更改,我认为 DAO [在 Hibernate 中] 的缓存功能都被遗漏了,因为每次它们都被从会话缓存中逐出。总之,数据库更新不会触发 DAO 更新。更新 DAO 后,如果我想反映视图级别的变化,那么我不得不借助 Primeface 套接字 [PrimePush],因为每次刷新页面都不是一个好的实现,并且 primeface 套接字允许更新特定的 id。因此,这意味着对于每个 DAO 字段,我必须借助许多不同的 Primeface 套接字,每个套接字都有唯一的通道。也必须由开发人员在 bean 代码中向这些不同的套接字发送消息。
那么,问题是如何以有效的方式处理这些问题?是否有任何其他技术/框架可以处理这些问题,以便开发人员不必担心?