gpt4 book ai didi

java - hibernate 多用户,动态变化

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:15:26 24 4
gpt4 key购买 nike

这里有两个技术问题,但紧密耦合:)

我在一个新项目中使用 Hibernate。这是一个POS项目。它使用 Oracle 数据库。

我们决定使用 Hibernate,因为项目很大,而且它提供(最流行的)ORM 功能。

目前,Spring 是不可能的 - 原因是:该项目是一个 Swing 客户端-服务器应用程序,它增加了不必要的复杂性。而且,Spring 应该非常依赖硬件资源。

有可能抛弃 Hibernate,而使用 JDBC。为什么?项目需求是精准的数据库交互。意思是,我们应该完全控制连接、 session 和事务(是的,低至未优化的查询)。

第一个问题是 - 您对使用上述要求有何看法?

第二个问题围绕着 Hibernate。

我们开发了一个简单的 Hibernate 试点项目。另一个项目要求是 - 一个数据库用户/每个用户一个连接/每个用户一个 session /事务是灵活的(我们可以在需要时结束它们,作为 session )多个用户可以同时登录应用

我们实现了类似的目标。准确地说,我们在没有多用户 要求的情况下实现了所描述的全部功能。

现在,看看可用的资源,我得出一个结论,如果我们要在数据库上有多个用户(在同一个架构上),我们最终将使用多个 SessionFactory,实现用于新用户连接的动态 ConnectionProvider。为什么?

用户散列密码在数据库中,因此我们需要动态添加一个用户到当前用户列表。

第二个问题是 - 这可以做得更简单一点吗,Hibernate 不支持这样的配置似乎很奇怪。

谢谢。

最佳答案

如果您正在考虑使用 Hibernate 或 JDBC 的天气,老实说,选择 JDBC。如果您的领域模型不是太复杂,那么您实际上并不会从使用 hibernate 中获得很多好处。另一方面,使用 JDBC 将极大地提高性能,因为您可以更好地控制查询,并且由于没有所有 Hibernate 开销,您的内存使用量会大大减少。平衡这个我制作一个尽可能详细的模型的第一个 scetch。如果您能够从一开始就安排好一切(在整个项目中没有任何部分可能会发生巨大变化),并且如果上述模型看起来不涉及,那么 JDBC 将是您的 friend 。

关于那里的用户和 session ,我认为您可能会误会(虽然可能只是我),但我认为您不需要多个 SessionFactories 来拥有多个 session 。 SessionFactory 是一个初始化起来很重的对象,但是一旦拥有一个对象,您就可以从中获取多个轻量级的 hibernate session 对象。

作为最后的评论,如果您真正坚持使用 ORM 解决方案(无论出于何种原因),请尽可能选择 EclipseLink JPA2 实现。 JPA2 比 hibernate 具有更多的特性,并且 Eclipselink 实现比 hibernate 更少错误。

关于java - hibernate 多用户,动态变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7520583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com