Jpa EclipseLink:以编程方式检索PU名称

Jpa EclipseLink:以编程方式检索PU名称,jpa,eclipselink,jpa-2.0,Jpa,Eclipselink,Jpa 2.0,在EclipseLink中创建EMF非常简单: String myPU = "mypu"; Persistence.createEntityManagerFactory(myPU); 但是,在创建工厂后,除了单独存储字符串外,还有什么方法可以检索PU的名称?创建工厂时,您可以将persistenceUnitName存储在属性映射中: String myPU = "mypu"; Map<String, Object> properties = new HashMap<Strin

在EclipseLink中创建EMF非常简单:

String myPU = "mypu";
Persistence.createEntityManagerFactory(myPU);

但是,在创建工厂后,除了单独存储字符串外,还有什么方法可以检索PU的名称?

创建工厂时,您可以将persistenceUnitName存储在属性映射中:

String myPU = "mypu";
Map<String, Object> properties = new HashMap<String, Object>();
properties.put("custom-property.unit-name", myPU);
EntityManagerFactory emf = Persistence.createEntityManagerFactory(myPU, properties);
assertEquals(myPU, emf.getProperties().get("custom-property.unit-name"));

存储单元名称的属性的名称并不特殊。工厂只存储您传递给它的任何属性。只需确保它是唯一的,并且不会与EclipseLink属性冲突。

答案是JPA impl特有的。如果你真的搜索或谷歌搜索了这个问题,你应该知道这一点。因此,改进问题,告诉JPA impl/使用的版本。注意,感谢反馈。