【发布时间】:2011-02-10 10:08:49
【问题描述】:
我遇到了 Hibernate/JPA 的问题,当幕后的魔力让生活变得困难时。我想做的事情非常琐碎,所以应该有解决方案,但我就是找不到。
所以我想从一个持久性单元(数据库)加载一些表并将它们存储到另一个持久性单元(另一个数据库)中。这里没有什么好笑的,只是加载并坚持。
在我的第一次尝试中,我使用 persist 将分离的实体存储在一个新的持久性单元中。它没有用,因为他们已经有了标识符,所以我不得不尝试别的东西。
所以我的第二次尝试是使用 merge 但这导致 Hibernate 为每个实体额外执行一个(至少)select。使用 merge 导致这非常慢,最终对我们不可用。
所以对于我的问题,是否有在不使用 merge 的情况下在新的持久性单元中持久化分离的实体?我已经知道这些表是空的,所以我不需要休眠来帮我检查它......
【问题讨论】:
-
我想我想在这里做的是使分离的实体瞬态,因此它们可以被持久化而不是合并。有没有人可以做到这一点? Hibernate 如何检测实体是否分离(是否设置了标识符)?如果可能的话,我想保留标识符。
-
我在 Hibernate 文档“在两个不同的数据存储之间复制对象”中找到了以下部分,因此应该可以使用普通的 Hibernate。但是我仍然没有找到使用 JPA 的方法。
标签: hibernate jboss jpa-2.0 java-ee-6