jpa 是否可以注入特定于上下文的PersistenceContext?

2fjabf4q  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(115)

在jsf应用程序中,通过注入PersistenceContext来管理数据。

@PersistenceContext(unitName = "MyPU")
 private EntityManager em;

PersistenceContext是静态的,在编译时选择。是否有方法根据用户注入不同的PersistenceContext?我的想法是在数据库端也强制执行授权检查,这样,如果应用程序安全性存在漏洞,用户就无法访问或修改受限数据。

xtupzzrd

xtupzzrd1#

创建一些工厂:

@Stateless
public class PersistenceContextFactory {
  @PersistenceContext(unitName="MyPU")
  private EntityManager emPU;

  @PersistenceContext(unitName="MyOtherPU")
  private EntityManager emOtherPU;

  public EntityManager getEntityManager(User user) {
    if(user.hasSomeRight()) {
      return emPU;
    } else {
      return emOtherPU;
    }
  }
}

相关问题