问题标签 [hibernate-4.x]

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 回答
1586 浏览

hibernate - Hibernate 4 和使用 JPA + Spring 时有关延迟加载的改进

Hibernate 4 是否带来了关于延迟加载的任何改进?

我们使用 Hibernate 作为 JPA 提供程序,并希望保持我们的代码干净,不包含特定于 hibernate 的内容。我们不想使用 Hibernate 会话对象。在我们的应用程序中,我们也使用 Spring 和 JSF。我们认为有 aOpenSessionInViewFilter和 aOpenSessionInViewInterceptor但是两者似乎都只在 bean 在请求范围内时才起作用。拦截 Spring 会话范围 ( @Scope("session")) 似乎不起作用。

其他框架允许weavingenhancementbean。Hibernate 4 现在是否可以实现类似的功能,或者引入其他新功能以使代码不受休眠特定扩展的影响?(有些配置当然没问题。)

我已经检查了 Hibernate 4 中有什么新功能? 并看到他们在 sessionfactory 上工作,但是我不明白它是否有帮助。

0 投票
2 回答
6369 浏览

hibernate - Hibernate 4 中的新 XSD 架构

在 Hibernate 4 中,我发现(对我来说是新的)使用 XSD 模式而不是 DTD 的可能性。

但是模式位置无效,在初始化期间我遇到了错误。

有人知道 Hibernate 4 中的 XSD 有什么问题吗?

0 投票
4 回答
30229 浏览

java - 使用休眠 4.0 和 spring 3.1.0.release 的事件监听器?

这些 jar 都是新发布的,并且具有 Java EE 应用程序的最新解决方案。但是我在 hibernate.cfg.xml 中指定休眠侦听器时遇到问题。

在 spring 3.1.0 之前,LocalSessionFactroyBean持有一个保持事件监听器的属性。但是在 3.1.0.release 中没有 eventlisteners 映射。现在我无法在 saveorupdate、postload 等上跟踪模态对象,因为它们不是由 Spring 配置的。你有解决这个问题的想法吗?

0 投票
2 回答
9166 浏览

java - How do I get unit test to run in java 7: java.lang.VerifyError: Expecting a stackmap frame at branch target

Hi I am running a maven test using maven 3.0.3 with hibernate 4.0.0 Final release and spring 3.1 on jdk7 update 2.

I get the following error.

My Equals method is using EqualsBuilder from commons-lang 2.6. I set the following maven opts

after reading this Java 7 JVM verifyError

Note: My test works under jdk 1.6 update 29.

How do I fix this? It seems setting -XX:-UseSplitVerifier still causes the error.

0 投票
5 回答
27757 浏览

java - Hibernate 4 升级后的“发现:位,预期:布尔值”

我正在尝试从 Hibernate 3.6.5 升级到 4.0(以及从 Spring 3.0.5 升级到 Hibernate 4 支持所需的 3.1)。

现在,对于 MySQL 和 HSQL,我遇到了持久布尔字段的问题:

域对象中使用了JPA@Entity@Column注解,有问题的字段如下所示:

HSQL 架构:

MySQL 架构:

在坚持使用 Hibernate 4 的同时解决这个问题的最直接的方法是什么?我应该更改数据库架构、Hibernate 配置还是域类注释?

我不知道代码和配置之前是否完全“正确”,但至少它在 Hibernate 3 中运行良好。

0 投票
1 回答
2635 浏览

spring - Hibernate4 和 Lobhandler

根据这篇文章,我将会话工厂定义从

进入

不幸的是,不可能像在 hibernate3 中那样定义 LobHandler。由于“Lobhandler”的javadoc中仍然写有以下内容,因此似乎仍然有必要

总结推荐的选项(对于实际的 LOB 字段):

  • JDBC 4.0 驱动程序:StreamAsLob=true 的 DefaultLobHandler。

  • PostgreSQL:带有 wrapAsLob=true 的 DefaultLobHandler。甲骨文 9i/10g:

  • OracleLobHandler 具有特定于连接池的 NativeJdbcExtractor。

  • 对于所有其他数据库驱动程序(以及对于可能在某些数据库上变成 LOB 的非 LOB 字段):一个普通的 DefaultLobHandler。

那么,是否还需要在hibernate4中定义lobHandler???如果是这样,我在哪里可以定义它?

0 投票
5 回答
13756 浏览

hibernate - HHH000387 休眠警告是什么意思?

我刚刚更新到 Hibernate 4.0 并看到警告消息:

HHH000387: ResultSet's statement was not registered

在我的日志文件中。这是什么意思,我应该担心吗?

0 投票
3 回答
8988 浏览

hibernate - Hibernate 4 ClassCastException 延迟加载,而 EAGER 工作正常

我有以下地理区域(如大陆、国家、州等)的 JOINED 继承根实体:

如您所见,地理区域有一个简单的自动 ID 作为 PK、一个名称以及与其父级的关系(自我引用)。请注意parent映射为​​的地理区域关系FetchType.LAZY。在数据库中,FKparent_id使NOT NULL关系成为可选的。的默认@ManyToOne值为optional = true,因此映射似乎是正确的。

子类定义了额外的属性,实际上并不感兴趣。数据库中的数据已正确链接,因为可以通过 JPQL 毫无问题地列出地理区域(在FetchType.EAGER上的映射略有不同parent,见文末):

EAGER加载的竞技场列表

每一行都是一个实例:

运行将父映射为 LAZY 的列表查询时,出现以下异常:

堆栈跟踪之前的 println 是:

println 明确表示父级是 State 的一个实例,但不能强制转换为 State?我不知道...

当将 GeoArea.parent 的 FetchType 更改为 EAGER 时,一切正常(见上图)。

我究竟做错了什么?LAZY 提示有什么问题?

谢谢

PS:我使用的是Hibernate 4.0.0.Final,映射都是标准的 JPA,服务器是 JBoss AS 7。

0 投票
14 回答
27195 浏览

java - 未找到当前线程的会话(Spring 3.1.X 和 Hibernate 4)

我正在尝试使用 Spring 3.1 和 Hibernate 4 设置我的项目。我一直在关注一些在线教程。我收到一个奇怪的错误,根据 spring 论坛应该已经用 Spring 3.1 修复了。 春季错误追踪器

当我的服务调用getCurrentSession()时,它会引发以下异常:

****编辑:根据 Spring Spring 3.1 Documentation for Transactions更新了我的 spring-dao.xml 。我尝试用 org.apache.commons.dbcp.BasicDataSource 替换我的数据源。我的配置中是否缺少任何可能导致此问题的属性?****

这是我的 spring-dao.xml:

我的用户 bean (User.java)

最后我的服务...

我意识到我的数据源可能没有被使用。如果我忘记包含任何配置,我可以更新这篇文章。此外,如果需要 Tomcat 启动日志,我也可以提供它们。

0 投票
1 回答
3401 浏览

java - Hibernate 3.6.7 到 4.0.1 升级,嵌套事务

我正在尝试从休眠 3.6.7 升级到 4.0.1,并从 JDK 1.6 升级到 JDK 1.7。

迁移配置文件等后...我可以正常运行我的应用程序。

首先是我休眠的 cfg.xml:

但是我面临 1 嵌套 sessionFactory.getCurrentSession().beginTransaction() 的问题这曾经在休眠 3.6.7 中工作,尽管没有“hibernate.transaction.factory_class”属性。

有人知道我做错了什么吗?

堆栈跟踪是这样的: