我真正想要做的是枚举为应用程序声明的所有持久性单元(PU)。由于StackOverflow中的一些答案说JPA中不存在这样的服务,因此该选项似乎是自己解析persistence.xml文件并获取在那里声明的所有PU。
那么,如何加载persistence.xml文件?
加载persistence.xml
意味着获得InputStream
。通常该文件位于META-INF
目录中。要从那里获得它,你可以使用ClassLoader
,而qazxswpoi可以从你当前的类中检索:
InputStream input = this.getClass()。getClassLoader()。getResourceAsStream(“META-INF / persistence.xml”);
之后,您可以将其传递给众多XML解析库之一(JAXP,JAXB,dom4j,...)以读取所需信息。