在同步过程中,我发现了一个错误,通过一个未标记为cascade PERSIST:Wallet的关系找到了一个新对象
我知道错误通常是由于您没有级联类型。坚持
,不要具体地坚持那个实体,但我的故事可能会有所不同,因为我坚持了那个实体。
我在一个交易中创建用户,然后将用户传递给一个新的交易,在这个交易中,钱包被创建并连接到用户
退出createUser
功能时出错
虽然我知道将托管对象传递给新事务并在那里进行更改是个坏主意,但我希望代码在Spring上下文中能够正常工作。但我不确定它为什么会在J2EE中抛出错误。
我还发现,在退出
createUser
再次合并钱包,以便再次管理对象,或
如果有人能告诉我J2EE和Spring之间的区别,这段代码在前一段代码中不起作用,我将不胜感激。
// existing transaction
public void createUser(){
User user = userRepo.createUser();
walletService.createAndAttachWalletToUser(user);
// add to fix
// user.setWallet(walletService.merge(user.getWallet())); OR
// user.setWallet(walletService.getWallet(user.getWallet().getId()));
}
// WalletService class
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void createAndAttachWalletToUser(User user){
Wallet wallet = walletRepo.createWallet();
user.setWallet(wallet);
}
这个问题已经有一段时间没有答案了,所以在这里张贴漫游:
在退出createUser
再次合并钱包以便再次管理对象,或者再次从DB获取新创建的钱包并将其附加到用户。因此,当退出createUser时,它知道wallet不是一个新实体,但已经存在。
我有两个2类的关系多对多。 我想用这种方式创建一个新的recipie: 如果数据库中不存在成分,则会出现如下错误 有没有办法自动添加表中创建的对象? 我尝试添加CascateType. PERSIST但它也不工作
在试图获得文章和之间的关系时,我可能没有完全正确的映射,导致: 文章: 海德菲尔德: 实体已经更新,以反映使用的建议,这似乎可以修复特定的错误消息。我正在努力生成一个更有用的日志来跟踪发生的事情。
这是我的第一篇帖子,如果我有任何错误,请原谅我。 当我想查询(添加,编辑,删除)数据库时,我得到一个错误java.lang.IllegalStateExctive:在同步期间,通过未标记为级联PERSIST的关系找到了一个新对象。 相关表格包括赞助商和捐款。它们之间存在一对多的关系。以下课程:赞助商 捐款:
我有两个JPA实体(账户和个人),具有双向关系: 当我持久化一个人时,我不想持久化所有帐户,但当我持久一个帐户时,我想更新Person属性hasAccounts,因此我还需要更新这个人。 我做了以下步骤: 创建人员 坚持该人 创建帐户 修改所有者(以前创建的 持久帐户(我希望它会自动合并该人) 我得到了这个例外: (我用JPA 1.0配合Hibernate)。
问题内容: 我有以下两个实体: 1-播放列表: *保存或更新播放列表实体时,需要使用 *CascadeType.ALL 来保存和更新PlaylistadMap集合。 orphanRemoval = true :在删除播放列表实体时需要,PlaylistadMap引用也应删除。 2- PlaylistadMap: 使用我删除播放列表时,出现以下异常: 请告知如何解决此异常。 问题答案: 将 Fetc
问题内容: 我收到上述错误“ org.hibernate.ObjectDeletedException:被删除的对象将通过级联重新保存(从关联中删除已删除的对象):”。有人可以帮我这个问题是什么,应该怎么解决? 谢谢。 问题答案: 没有映射结束代码会有点困难…这通常是由于要删除与集合关联的对象引起的。 您必须从拥有的收藏夹中删除对象,然后再删除对象 但是您可以通过这种方式使用deleteOrpha