问题标签 [hibernate-session]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3461 浏览

java - Hibernate 一级缓存 - 是否同步?

我知道HibernateSession使用的是一级缓存这一事实,一旦我们从 中检索实体,随后对具有相同标识符的同一实体的 get 调用将从DB 而不是 DB中获取,直到Open为止。sessionsessionsession

话虽如此,我对hibernate如何将一级缓存与数据库同步有疑问?考虑以下场景

所以我的问题是

  • 由于u3是从一级缓存中获取的,是否u3有更新值?
  • 如果有人在会话打开时直接更新数据库并修改用户对象,是否session与数据库同步?

预先感谢您在此线程上的时间和精力

0 投票
1 回答
33356 浏览

spring - Spring事务和hibernate.current_session_context_class

我有一个使用 Hibernate 4 和 Spring Transactions 的 Spring 3.2 应用程序。所有方法都运行良好,我可以正确访问数据库以保存或检索实体。然后,我引入了一些多线程,由于每个线程都在访问 db,所以我从 Hibernate 收到以下错误:

我从网上读到我必须添加<prop key="hibernate.current_session_context_class">thread</prop>到我的 Hibernate 配置中,但现在每次我尝试访问数据库时,我都会得到:

但是,我的服务方法用 注释@Transactional,并且在添加之前一切正常<prop key="hibernate.current_session_context_class">thread</prop>

为什么虽然方法用@Transactional注解却没有事务?我怎么解决这个问题?

这是我的 Hibernate 配置(包括会话上下文属性):

0 投票
1 回答
57 浏览

hibernate - 为什么从春季 3.1 起不再使用 hibernatetemplates?

我们正在开始一个新项目,并且对是否可以使用hibernatetemplates感到困惑。但是在发现的许多论坛中,从 spring 3.1+ 起,hibernatetemplates 的使用就被淘汰了。谁能提供为什么 hibernatetemplate 被淘汰了?

0 投票
1 回答
21394 浏览

java - 休眠会话工厂

在我们的 Web 应用程序中,我们有一个HibernateSessionFactory类,即打开和关闭连接。一切都很好,但是当我们更新数据库中的数据时,它在我们的应用程序中并没有改变。不幸的是,我们看到了数据库中的旧数据。我该如何解决?

0 投票
1 回答
24291 浏览

spring - 使用 current_session_context_class 属性休眠 3 休眠 4

我有一个 Spring 和 Hibernate3 在生产中运行良好的应用程序。以下是 Spring 的 applicationContext.xml 中会话工厂的配置

它在生产中运行良好。

现在对于另一个项目,我们正在迁移到 Hibernate4。我们复制了相同的配置,除了使用来自 org.springframework.orm.hibernate4.* 包的 Hibernate 4 的 SessionFactory、TransacionManager 等。但是它开始给出异常说“如果没有活动的交易,保存是无效的”。搜索了一下,好像很多人都遇到了问题,有几个人建议不要使用

财产,它的工作。它也对我有用。我可以从帖子中收集到的所有信息都与上下文会话和干扰 Spring 会话管理策略的线程策略有关。但是我找不到任何具体的答案。
另外,为什么它适用于 Hibernate3 而不是 Hibernate4。有什么区别和改变了什么?其他所有配置都相同。我没有使用@Transactional,而是使用老式的 XML 方式。

有人可以指出我对 Hibernate3 和 Hibernate4 之间的这种行为差异的明确解释吗?

0 投票
1 回答
1536 浏览

java - 春季应用程序的休眠配置错误?

我在 Spring 应用程序中遇到了休眠问题。我认为一定有错误的配置。

休眠.cfg.xml

持久性上下文.xml

当我在我的应用程序中使用时sessionFactory.getCurrentSession(),它仍然会引发异常

但是当我使用时sessionFactory.openSession(),它解决了问题,但又产生了另一个问题。所以我的问题是,我怎样才能达到一种状态——整个应用程序的一个会话。当我打电话时如何达到sessionFactory.getCurrentSession(),会话将存在。我很困惑,我阅读了很多线程如何解决它,但没有成功。

更新 当我得到一些对象然后我尝试改变它

get方法中的代码

edit方法中的代码

它把我扔了org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions

0 投票
2 回答
1025 浏览

java - 在休眠中处理会话的正确方法

我的代码有效,我只想知道它是否写得好以及我应该修改什么。我使用不同的方法进行 MySQL 选择,使用休眠 HQL 和标准。主要是学习使用它们。另一个问题是关于 Hibernate 会话,我不知道我是否以正确的方式使用它。

我有这个会话创建类:

我创建了一个 DAO 类:

我打开、关闭、开始和提交交易的方式是否正确?或者我应该例如准时打开和关闭会话?哪个是最佳实践?

0 投票
1 回答
3333 浏览

java - 为什么 Junit 案例在 jenkins 上失败,但在我的本地成功

我有一些 junit 测试用例在 jenkins 上运行,但其中一些在 jenkins 上失败了,但是我让它们在我的本地笔记本电脑上成功运行。org.hibernate.SessionException: Session is closed! at org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:72) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1688) at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:347) at com.test.ui.struts.module.config.ReadAction.executeImpl(ReadAction.java:144) at com.test.ui.struts.module.config.CrudDataAction.execute(CrudDataAction.java:120)

这是我在 ReadAction.java 中的代码

我看不出有什么理由让会议在这里结束,有什么理想的吗?

0 投票
1 回答
1122 浏览

hibernate - 何时打开休眠连接和休眠会话?

我有一个与 Hibernate Connection、Session 和 SessionFactory 相关的问题。查询如下:

1)在每个请求上打开连接并在此之后关闭它是一种好习惯吗?

2)有一个会话工厂为每个请求打开会话,它与连接有什么关系?我知道在连接时 sessionfactory 会为不同的请求打开会话,什么时候应该打开和关闭连接,什么时候应该打开一个会话并关闭它?是不是我们应该在每次登录时打开一个新连接并在注销时关闭该连接或休眠它本身?

提前感谢您的好评

问候拉胡尔

0 投票
1 回答
977 浏览

hibernate - Session.createQuery() 无法正常工作

我已经缩小了这样的问题:

  1. final String[] 具体查询字符串 = QuerySplitter.concreteQueries( hql, factory ); 在 session.createQuery() 内部调用。
    传递给它的 Hql 参数是 = FROM com.persistence.hibernate.pojo.CC WHERE ID = :ID

  2. 上述函数返回一个空字符串数组对象。因此,concreteQueryStrings = [];

  3. 因为这个长度=concreteQueryStrings.length 是0;

  4. 因此,发生了以下两个悲伤的事件。参数元数据=新的参数元数据(空,空);返回元数据=空;

  5. 这导致 query.setParameter("ID", 5); 抛出 QueryParameterException。这显然是错误的。我的 HQL 有什么问题导致具体查询()返回空白?

顺便说一句,我有休眠 3.4。

谢谢-阿努普