问题标签 [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 投票
1 回答
90 浏览

java - 在休眠中的单个事务中写入多个数据库

我有一个需要写入多个数据库的要求。如果在写入任何数据库时发生任何异常,我想回滚所有内容。

例如

注意:会话是休眠会话任何帮助将不胜感激

0 投票
1 回答
547 浏览

java - 如何从计算行数的 SQL 查询开始正确实现 Hibernate SQL 查询?

我在 Hibernate 中绝对是新手,我有以下问题。

我有这个标准的 SQL 查询:

这工作正常并返回一个整数

要知道的重要一点是,在此查询中,唯一可以更改的参数(由用户在 web 应用程序的前端插入)是最后一个(这个:provNuovIst.COD_REG = "SI")。

因此,我正在使用的应用程序使用 Hibernate 并且要求说我必须使用Hibernate Native SQL来实现这个查询,我找到了这个教程:

http://www.tutorialspoint.com/hibernate/hibernate_native_sql.htm

显示这个例子:

根据我的理解(如果我的断言错误,请纠正我),这涉及到使用Employee模型类。所以之前的查询首先定义查询(使用:param_name参数的语法),然后创建一个SQLQuery Hibernate 对象,添加用于结果的类,设置前面的参数 neam 最后获得一个 List(我认为 Hibernate 创建类似于ArrayList)与检索到的对象。

我的问题是我只需要获得一个数值(因为我有一个SELECT count(*),所以我将获得一个整数值而不是一组行)。

那么如何正确使用Hibernate Native SQL将我的 SQL 查询实现到我的 Hibernate 存储库类中呢?

0 投票
1 回答
4852 浏览

hibernate - JPA - 休眠会话已关闭,但实体管理器工作

给定两行代码:

第一条指令工作正常,但第二条指令抛出 org.hibernate.SessionException: Session is closed!。任何想法 ?

上下文:春季批处理 3.0.6 / 休眠 3.5.0

信息:EntityManager 被注入:

更新 1

如果会话为空(在 EntityManagerImpl.getRawSession 中),我可以在 find 方法中看到一个调用 this.getSession() 打开一个新会话

更新 2

在第二种情况下,不会调用 getSession 方法,而是调用一个名为 SharedEntityManagerCreator 的类来关闭会话:

0 投票
0 回答
325 浏览

java - 如何使用 .properties 在 Hibernate 中配置和获取会话

我找到的所有示例都包含有关 Hibernate.cfg.xml 的信息,但我使用的是 hibernate.properties 而不是它。

在资源文件夹中:

我在这里使用属性:

}

是否有机会使用 hibernate.properties 获得会话(对于 fetch.LAZY)?

更新:

我有 JPA,但仍然需要会话。

在我的实体中,我有:

和:

所以,当我试图得到:

我有一个错误,如果 id_city 不为空:

在此处输入图像描述

如果 id_city 为空(未使用 Fetch.LAZY),则一切正常:

在此处输入图像描述

0 投票
0 回答
89 浏览

rest - Apache Tiles 与 Spring MVC 的组合用于 REST ful 服务、表单验证和会话支持

Whether Apache Tiles combination is suitable to work with Spring MVC, and Hibernate for REST full Services, Form validation, and Hibernate-Session support.

Any other alternative for Apache Tiles?

0 投票
3 回答
3564 浏览

java - 事务开始时的侦听器

我正在寻找一个干净的解决方案来让一个监听器开始事务。这意味着我希望侦听器成为 spring 上下文中的一个 bean(组件),它会在新事务启动时从 TransactionPlatformManager 或 Hibernate Session 或类似的东西接收事务启动事件。

伴随着一些东西:

具体来说,我正在缓解一个系统范围的问题,我需要在事务开始时设置一个本地线程,这样我就可以在处理休眠实体以检索信息时进一步访问该本地线程。

我查看了来源,并没有发现这样的听众可以实现的痕迹。我发现的唯一解决方案是继承 HibernateTransactionManager 及其 doBegin() 方法,我觉得这不是特别好。

0 投票
1 回答
289 浏览

java - 使用 Vaadin Hibernates ThreadLocal.get() 在第一次调用后返回 null

我正在开发 Vaadin 框架中的 Web 应用程序,以从 MySQL 数据库后端检索一些数据。该应用程序本身是一个调查系统,用于跟踪软件顾问的技能(并对其进行评分)。我的一些同事已经为此编写了后端代码。现在我正在尝试将 Vaadin 前端与其耦合,我遇到了一个非常烦人的问题。我有两个 DAO 类,PersonDAO 和 SurveyDAO。

首先调用 PersonDAO,然后调用 SurveyDAO。PersonDAO 从存储在ThreadLocal Session变量中的 HibernateUtil 类(不是我自己编写的)中检索 Session。当 SurveyDAO 完全一样时,ThreadLocal Session.get() 方法返回一个空引用!经过一番阅读,我知道 Vaadin 使用 Sessions 的方式很奇怪。但我看不出如何解决这个问题,或者当时如何使用 DAO 的另一种方式。

这是代码的完整演练:

在我的主 UI 中,加载 webapp 后,我创建了一个 ComboBox 组件,该组件由 PersonDAO 返回的 List 填充。如此:

这个 DAO 可以无缝运行。但是,当该 ComboBox 中的值发生更改(选择了顾问)时,我使用该人员的 idList<Survey>从该顾问调查的 SurveyDAO 中获取一个。这是使用以下代码完成的,该代码是附加到填充有 Person 对象的 ComboBox 的 ValueChangeListener:

这就是问题所在。createSurveysComboBox() 方法与 createConsultantsComboBox() 方法的工作方式相同,除了它具有传递给 SurveyDAO 的 int id 参数这一事实,因为在查询中需要它作为参数。但是,当 SurveyDAO 调用 findByPersonId 时,我得到一个 NullPointerException 和以下堆栈跟踪打印:

findByPersonId 代码可以在上面找到。我现在将提供 AbstractDAO.getCurrentSession() 和 HibernateUtil.getSession() 方法的代码片段(这也是我自己没有编写的 - 因此我无法弄清楚出了什么问题!)

抽象道

休眠实用程序

在会话检索方法中,您可以看到一些调试输出。取消注释时,将触发方法中的会话变量,因为 ThreadLocal 返回了一个空引用。HibernateUtil.getSession()

为什么是这样?

0 投票
1 回答
56 浏览

java - 我可以通过 hibenrate Session.load 只更新或设置一个实体字段而不加载整个对象吗?

hibernate sessionload方法用于在不加载整个对象的情况下检索代理,这通常在需要链接父实体和子实体时使用。但是更新代理呢?例如:

这里预计只有name实体的列将被更新,id=1l而不加载整个实体。这是真的吗?这段代码是否等于sql执行UPDATE MyEntity SET name = 'newName' where id = 1

0 投票
1 回答
5991 浏览

java - Hibernate - 无法获取当前线程的事务同步会话

我知道这个问题已经被问过很多次了,但大多数都无法解释我的问题:

为什么我收到错误

如果我用 注释该方法@Transactional,它工作得非常好。因为我@EnableTransactionManagement在我的春天背景下。

我想尝试一些东西来理解和之间的区别getCurrentSessionopenSession所以我在上面创建了测试用例。

getCurrentSession在活动事务上下文中被调用,为什么它仍然抛出错误???

参考这里的代码

0 投票
2 回答
869 浏览

hibernate - 从 JDBC 连接对象获取休眠会话?

我有一个JDBC Connection我想转换成的对象Hibrenate Session

有什么方法可以实现这一目标吗?

我尝试使用谷歌搜索,但反之亦然。