问题标签 [hibernate3]
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 - 高性能休眠插入
我正在研究应用程序的延迟敏感部分,基本上我将接收网络事件转换数据,然后将所有数据插入数据库。分析后,我发现基本上我所有的时间都花在了保存数据上。这是代码
集合的大小始终小于 20。这是我看到的时序数据:
这让我很困惑。我认为save
应该很快,所有时间都应该花在commit
. 但显然我错了。我也试过删除事务(它不是真的必要),但我看到更糟糕的时候......我设置了 hibernate.jdbc.batch_size=20...
我可以期望每秒收到多达 500 条消息,因此我需要将单个消息处理时间控制在 20 毫秒以下。
我需要这个操作尽可能快,理想情况下只有一次往返数据库。我怎样才能做到这一点?
orm - 将 Glassfish v2 升级到 JPA 2.0?
我正在尝试在 Glassfish V2 上将 Hibernate 3.5.5 与 Spring HibernateJpaVendorAdapter 一起使用,但是在初始化 Spring 上下文时出现以下异常:
在 org.hibernate.ejb.util.LogHelper.logPersistenceUnitInfo(LogHelper.java:39) 在 org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:517) 在 org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java :73)
问题是 Glassfish V2 使用 JPA1.0,它在 Hibernate 附带的 hibernate-jpa-2.0-api-1.0.0.Final.jar 之前加载到服务器类路径上。JPA 1.0 在 PersistenceUnitInfo 中没有 getSharedCacheModel 方法,但 JPA 2.0 有。
有没有办法升级 Glassfish V2 以使用 JPA 2.0(或任何其他解决此问题的方法)?
干杯,
Ĵ
java - 如何解决休眠错误:实体映射中的重复列?
嗨,我有以下型号:
我收到了这个错误:
java - 如何在hibernate 3中映射派生身份?
我有以下情况:
换句话说:A和B之间存在OneToOne关联。B是一个弱实体,它的Id是从A类派生的。
如本文所述,我已经测试了一些解决方案,例如在 @OneToOne 下添加 @PrimaryKeyJoinColumn 。但是我收到了这个错误:“org.hibernate.id.IdentifierGenerationException:必须在调用 save() 之前手动分配此类的 ID:B”
我不知道在这种情况下是否相关,但我使用的是 Oracle 11g .
更新
我认为我的方式是正确的。这是我的问题的实际状态:
现在的错误有点不同:
它试图在表 B 中找到列 A(而不是 AID)。我不知道如何指定列名是 B.AID 而不是 BA
jpa-2.0 - 急切地执行@PostLoad _after_?
使用 JPA2/Hibernate,我创建了一个实体 A,它具有到实体 X 的单向映射(见下文)。在 A 内部,我还有一个临时成员“t”,我正在尝试使用 @PostLoad 方法进行计算。计算需要访问关联的 X:
但是,当我尝试加载此实体时,我收到“org.hibernate.LazyInitializationException:非法访问加载集合”错误。
在调试时查看hibernate的代码(AbstractPersistentCollection.java),我发现:
1) 在初始化“listOfX”成员之前调用我的@PostLoad 方法
2) Hibernate 的代码有一个明确的检查,以防止在@PostLoad 期间初始化急切获取的集合:
我想解决这个问题的唯一方法是停止使用 @PostLoad 并将初始化代码移动到 getT() 访问器中,添加一个同步块。但是,我想避免这种情况。
那么,有没有办法在调用 @PostLoad 之前执行急切获取?我不知道有一个 JPA 设施可以做到这一点,所以我希望有一些我不知道的东西。
另外,也许 Hibernate 的专有 API 可以控制这种行为?
java - 休眠:org.hibernate.AssertionFailure:com.xxx.Bean 条目中的空 id
我遇到了以下错误:
这是 MySQL 表定义:
这是 Hibernate 映射:
Java代码:
我注意到,如果我删除KEY ARF_MANUFACTURER_MNF_ID (ARF_MANUFACTURER_MNF_ID)
,AssertionFailure
则不会发生。有没有办法在不删除 KEY 的情况下避免此错误?
不幸的是,这个解决方案对我不起作用。
java - Hibernate 从另一个会话中获取集合
嗨,我得到了臭名昭著的“没有会话或会话已关闭”我知道这是因为我试图在另一个会话中调用一个休眠持久对象的集合,所以有没有办法在不必创建的情况下实际做到这一点过滤器并将 JOIN 提取模式添加到其中....
坟墓:无法延迟初始化角色集合:ni.edu.uni.id.data.object.Curso.modulos,没有会话或会话关闭 org.hibernate.LazyInitializationException:无法延迟初始化角色集合:ni。 edu.uni.id.data.object.Curso.modulos,没有会话或会话被关闭
java - 为什么我的代码没有遍历我的 Hibernate 查询结果集?
我正在向 Hibernate 发起一个查询,该查询返回一个包含 25 个元素的列表。然后我遍历列表以打印出每个元素。问题是它打印出第一个元素 25 次,而不是遍历元素。
这里是第一类的代码AnalAction
:
这里是LocationManager
:
}
java - 何时在 Spring 和 Hibernate 中使用事务?
升级我的项目我在这里考虑交易。
好吧,问题是我不太确定什么时候应该在 Spring 中将事务用于我的 Hibernate 查询。
并不是说我完全不了解事务是什么,我想我知道,但是
我是否需要将事务用于仅设置属性的get*
类型查询?read-only
这对get*
查询有效吗?
因为,就我而言,应该像 for CREATE
、UPDATE
和DELETE
这样的查询那样使用事务。
我在这里错过了什么吗?
java - How to make service use particular txAdvice in Spring?
I'm trying to upgrade my project and so I've come to transactions. This is how I did it up to now.
I changed the transaction attributes like this bellow, but I'm not quite sure how could I link the service with exactly this txAdvice
. Cause I generally have different transaction attributes for different services so there I guess should be more than one txAdvice
. Is there a way how to say the @Transactional
to use this particular txAdvice?