【问题标题】:Configurable persistence in Java EE5+Java EE5+ 中的可配置持久性
【发布时间】:2010-11-13 16:11:00
【问题描述】:

有两种方法可以使用持久性单元,代码或注释。

代码
[..]
EntityManagerFactory 电动势;
emf = Persistence.createEntityManagerFactory("SOMEPU");
[..]

注释
[..]
@PersistenceContext(name = "persistence/LogicalName", unitName = "SOMEPU")
[..]

问题:如果您想更改持久性单元(或指向不同的 jdbc 源),我可以轻松地调整源代码版本以从某些设置文件或其他文件中读取变量。但我不能将变量放入注释中。有什么解决办法?

是的,我可以始终保持相同的 PU 并将应用程序服务器中的 jbdc 资源指向其他地方,但我不希望任何人在 AS 的管理设置中修补。

干杯 斯文

【问题讨论】:

    标签: java persistence annotations java-ee-5


    【解决方案1】:

    如果您绝对必须使用注释来获取您的 PersistenceContext,那么我想您可以将 EntityManager 的创建包装在某个类中,然后将其注入到需要它的 bean 中? p>

    public interface MyPersistenceContext
    {
          public void getEntityManager();
    }
    

    然后在你的 EJB 中:

    public class MyEJB
    {
    
          @EJB
          private MyPersistenceContext persistenceContext;
    
          private EntityManager em;
    
          @PostConstruct
          public void postConstruct()
          {
                 em = persistenceContext.getEntityManager();
          }
    
     ....
    

    您提供的 MyPersistenceContext 的实现如何创建 EntityManager 取决于您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      相关资源
      最近更新 更多