gpt4 book ai didi

java - 来自不同持久单元的 JPA 实体映射

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:11:45 24 4
gpt4 key购买 nike

是否有任何特定的配置将来自不同持久化单元的实体放入当前映射?

例如:

@RooJpaActiveRecord(persistenceUnit = "persistenceUnit_central")
public class UserGroups{

//users come from `persistenceUnit_client`
//how to work this out?
//can mappedBy and targetEntity works the same way
//as they are in the same persistence unit?
@OneToMany
private List<User> users;
}

提前致谢。

最佳答案

我不认为你不能直接做到这一点。持久性单元意味着明显独立;它们有不同的实体管理器,因此它们很可能(这通常是原因)来自不同的数据库或模式。

您仍然可以在 persistence.xml 中定义同一个实体类以出现在多个持久性单元中,但是,正如我所说,它将由每个管理器单独处理。这意味着你不能这样做:

UserGroups ug = em1.find(UserGroups.class, ...); // entity manager 1
User u = em2.find(User.class, ...); // entity manager 2

// exception will be thrown on commit
// - from the point of view of em1, "u" is detached
ug.getUsers().add(u);

我不确定调用 em1.merge(u) 是否可以解决问题——我还没有遇到过这种情况。但是您当然可以创建 User 的副本并将其合并到所需的持久性上下文中。

关于java - 来自不同持久单元的 JPA 实体映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12731236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com