我正在开发一个应用程序(使用 JPA/Hibernate、Servlet、JSP、无框架的 Java EE),我发现在特定模块中更容易实现本机 SQL(而不是使用 ORM 直接解决方案)。完全没问题,但我希望它动态生成,即:我希望我的代码是防弹的,以防我更改持久性提供程序。
我想做类似的事情:
MySpecificQueryMakerInterface myQueryMaker = new MySpecificQueryMakerFactory(EntityManager.getPersistenceUnit().getProvider());
并在MySpecificQueryMakerFactory,
创建足够的类来为我正在使用的当前数据库执行本机 SQL。这样做,我将能够创建将MySpecificQueryMakerInterface
像MyPostgresQueryMaker
or一样扩展的类MyOracleQueryMaker
,并且我只会在添加新的特定数据库时更改工厂。
有没有办法使用 JPA/Hibernate 获取持久性单元/数据源的信息?