问题标签 [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 - 用hibernate读取数据不与数据库同步
我正在使用休眠与数据库进行交互。插入、删除、更新操作没有问题,因为它们由提交语句session.getTransaction.commit()结束。
但是,虽然selecting data,listing records
休眠返回先前显示的数据并且不显示所有新记录或所做的更新。
所以在问这个问题之前,我尝试(两周前)导航到类似的问题,但在应用所有建议时我没有找到答案。
(A) 启用二级缓存 (b) 增加隔离级别
这对我来说变得很奇怪,因为当我想更新最近插入的记录时,我得到以下信息。
这是我正在使用的一种选择方法!
我的休眠配置文件是这样的:
所以我很高兴提出两个问题:
我的方法有什么问题还是我的休眠配置有问题?
是什么阻止休眠与数据库同步以获取新插入的记录?
谢谢。
java - 在会话期间更改 Hibernate Session.FlushMode
我的应用程序使用FlushMode.AUTO
. 对于特定的服务方法调用,我想更改 Hibernate Session。FlushMode
到FlushMode.COMMIT
并恢复到FlushMode.AUTO
方法完成时。
问题:- 在会话期间更改 FlushMode 是否有任何问题/危险?
在会话期间更改 FlushMode 的原因:- 我正在使用 Hibernate Interceptor Approach ( onFlushDirty
) 来审核更改。使用 FlushMode.AUTO 时,会发生多个会话刷新(行为FlushMode.AUTO
)。因此,因此onFlushDirty
被多次调用导致重复审计。FlushMode
我通过更改为COMMIT
我期望进行审计的方法来解决上述问题。
spring-mvc - 自定义唯一约束注解 Spring MVC
我正在尝试创建自定义注释来检查唯一字段值。例如检查唯一的电子邮件地址等。
但不能自动装配“customerDAO”对象。它抛出异常'org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是 javax.validation.ValidationException:isValid 调用期间出现意外异常。
我在哪里做错了?请建议。
客户.java
唯一的.java
UniqueConstraintValidator.java
CustomerDAO.java
CustomerDAOImpl.java
mvc-调度程序-servlet.xml
pom.xml
java - Hibernate 如何从 session.get 查询生成 sql 字符串
我正在使用 Hibernate 4.2.4,我很想知道 Hibernate 如何将 session.get 调用转换为等效的 sql 查询,该查询最终用于从数据库中检索行。我不想在控制台中记录生成的 sql。我想在我的应用程序中使用相同的 sql 查询。像下面的东西。
我已经看到了 Criteria query -> How to get SQL from Hibernate Criteria API (*not* for logging) 的这个线程。
我想知道 session.get 类型查询是否存在类似的过程。
我还看到了这个线程->从休眠中获取 SQL 获取
与我的问题完全相同的问题,但是接受的解决方案谈到了获取统计信息,据我了解,这些统计信息仅考虑了已经执行的查询。另外,从统计数据中我能够捕获 hql/sql 查询,但不能捕获 session.get 查询。
我想知道即使在实际 session.get 被执行之前,用户是否有办法生成和使用 sql(可能通过与休眠相同的路径)。
java - ClassMetaData.getPropertyValue() 抛出 LazyInitializationException:无法初始化代理 - 没有会话
我正在尝试通过调用从类元数据中获取属性值
getPropertyValue(Object object , String propertyName , EntityMode entityMode)
但它正在抛出一个
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
例外,这是我的代码:
它正在打印第一个对象值,并且从第二次运行开始,它正在抛出异常。
java - 如何在春季管理休眠会话
我对会话关闭有疑问,在运行此应用程序期间会产生什么影响,以及如果这在生产中会怎样。
我在生产服务器中遇到了两个问题,它在应用程序使用期间消耗了大量内存,大约 800MB 才刚刚启动。
一段时间后,它会出现内存不足错误和服务器崩溃
我正在使用 tomcat 服务器来部署我的应用程序
我的代码是这个
如果我确实关闭了会话,那么延迟初始化会给出一个错误,因为会话已经关闭。
请帮我解决这个问题。我们如何在使用 spring 配置的 hibernate 中处理打开会话我使用的是 hibernate 3.6.1 和 spring 3.0.6。
hibernate - 插入第一条记录后 createSQLQuery(sql).executeUpdate() 不起作用
我正在调用下面的方法,需要通过存储过程将记录插入到表中。
在我的本地机器上,更新总是有效的。在服务器更新停止后插入一个
记录。它不打印任何异常。
我的方法
传递的 SQL 是
调用 SP_UPDATE_STATUS(NOW(),'value1',NOW(),'value1',1,'summary',)
java - Spring @Async:LAZY 集合上的空休眠会话
我在@Async
服务层方法上使用注释。
当我 EAGERLY 加载 @OneToMany 集合字段时一切正常,但是当我尝试访问 LAZY 加载的元素时,我发现 HibernateSessionImplementor
对象session
为空。这显然给了我一个例外:
这是我的收藏领域:
如何绑定休眠会话以便在@Async
上下文中延迟加载我的对象?
编辑
这是我的 trancactionManager / entityManager 配置
java - 使用 Spring 配置手动打开休眠会话
我遇到的问题是我使用 Spring 为我的 Web 应用程序管理和加载休眠。我目前正在使用 OpenSessionInViewFilter。这在我查看应用程序时按预期工作,但当我尝试从非视图相关活动(例如 Quartz 任务或我创建的用于帮助完成某些任务的一些 Runnable 线程)访问休眠时,效果就不那么好了。这会导致延迟初始化异常并且没有会话可用异常发生。
这是我目前使用 Spring 管理 Hibernate 的方式
然后我配置扩展 HibernateDaoSupport 的 DAO 对象并将它们注入服务类
然后在我的应用程序中,myService 被注入到我的控制器类中,所以我使用它来访问我的 DAO。对于我的情况,虽然看起来我需要以其他方式访问我的 DAO(或服务最好)并手动打开和关闭我的休眠会话,因为我的服务类似乎只在查看会话期间打开。我不确定最好的方法来做到这一点。Spring 中已经存在所有休眠配置,所以我假设它只是一个问题或以某种方式调用它们。
hibernate - Hibernate Session 是单线程的意味着什么?
Hibernate 文档说这代表org.hibernate.Session
了一个单线程的工作单元。我知道工作单元是在数据库事务的上下文中使用的。当它说单线程时是什么意思?请帮助我理解这一点。