Java 是否可以在运行时提取持久化单元配置信息?
我正在开发一个应用程序(javaee使用JPA/Hibernate、Servlet、JSP、no框架),我发现在特定的模块中更容易实现原生SQL(而不是使用ormdirect解决方案)。完全没有问题,但我希望它能够动态生成,即:我希望我的代码能够防弹,以防我更改持久性提供程序 我想做一些类似的事情:Java 是否可以在运行时提取持久化单元配置信息?,java,database,hibernate,jakarta-ee,jpa,Java,Database,Hibernate,Jakarta Ee,Jpa,我正在开发一个应用程序(javaee使用JPA/Hibernate、Servlet、JSP、no框架),我发现在特定的模块中更容易实现原生SQL(而不是使用ormdirect解决方案)。完全没有问题,但我希望它能够动态生成,即:我希望我的代码能够防弹,以防我更改持久性提供程序 我想做一些类似的事情: MySpecificQueryMakerInterface myQueryMaker = new MySpecificQueryMakerFactory(EntityManager.getPersi
MySpecificQueryMakerInterface myQueryMaker = new MySpecificQueryMakerFactory(EntityManager.getPersistenceUnit().getProvider());
在MySpecificQueryMakerFactory中,
创建适当的类,该类将为我正在使用的当前数据库执行本机SQL。这样,我将能够创建扩展mySpecificQueryMaker接口
的类,如MyPostgresQueryMaker
或MyOracleQueryMaker
,并且我只会在添加新的特定数据库时更改工厂
有没有一种方法可以使用JPA/Hibernate获取持久化单元/数据源的信息 我认为最好的方法是在持久化单元中指定一个自定义属性(例如,类名),您可以通过该属性进行访问。你可以通过电话到工厂