问题标签 [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.
java - 在休眠中的单个事务中写入多个数据库
我有一个需要写入多个数据库的要求。如果在写入任何数据库时发生任何异常,我想回滚所有内容。
例如
注意:会话是休眠会话任何帮助将不胜感激
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 存储库类中呢?
hibernate - JPA - 休眠会话已关闭,但实体管理器工作
给定两行代码:
第一条指令工作正常,但第二条指令抛出 org.hibernate.SessionException: Session is closed!。任何想法 ?
上下文:春季批处理 3.0.6 / 休眠 3.5.0
信息:EntityManager 被注入:
更新 1
如果会话为空(在 EntityManagerImpl.getRawSession 中),我可以在 find 方法中看到一个调用 this.getSession() 打开一个新会话
更新 2
在第二种情况下,不会调用 getSession 方法,而是调用一个名为 SharedEntityManagerCreator 的类来关闭会话:
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?
java - 事务开始时的侦听器
我正在寻找一个干净的解决方案来让一个监听器开始事务。这意味着我希望侦听器成为 spring 上下文中的一个 bean(组件),它会在新事务启动时从 TransactionPlatformManager 或 Hibernate Session 或类似的东西接收事务启动事件。
伴随着一些东西:
具体来说,我正在缓解一个系统范围的问题,我需要在事务开始时设置一个本地线程,这样我就可以在处理休眠实体以检索信息时进一步访问该本地线程。
我查看了来源,并没有发现这样的听众可以实现的痕迹。我发现的唯一解决方案是继承 HibernateTransactionManager 及其 doBegin() 方法,我觉得这不是特别好。
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()
为什么是这样?
java - Hibernate - 无法获取当前线程的事务同步会话
我知道这个问题已经被问过很多次了,但大多数都无法解释我的问题:
为什么我收到错误
如果我用 注释该方法@Transactional
,它工作得非常好。因为我@EnableTransactionManagement
在我的春天背景下。
我想尝试一些东西来理解和之间的区别getCurrentSession
,openSession
所以我在上面创建了测试用例。
getCurrentSession
在活动事务上下文中被调用,为什么它仍然抛出错误???
参考这里的代码。
hibernate - 从 JDBC 连接对象获取休眠会话?
我有一个JDBC Connection
我想转换成的对象Hibrenate Session
。
有什么方法可以实现这一目标吗?
我尝试使用谷歌搜索,但反之亦然。