【发布时间】:2012-10-01 21:23:27
【问题描述】:
我正在开发一个应用程序(使用 JPA/Hibernate、Servlet、JSP、无框架的 Java EE),我发现在特定模块中更容易实现本机 SQL(而不是使用 ORM 直接解决方案)。完全没问题,但我希望它动态生成,即:我希望我的代码是防弹的,以防我更改持久性提供程序。
我想做这样的事情:
MySpecificQueryMakerInterface myQueryMaker = new MySpecificQueryMakerFactory(EntityManager.getPersistenceUnit().getProvider());
并在MySpecificQueryMakerFactory, 中创建适当的类,该类将为我正在使用的当前数据库执行本机 SQL。这样做,我将能够创建将扩展MySpecificQueryMakerInterface 的类,如MyPostgresQueryMaker 或MyOracleQueryMaker,并且我只会在添加新的特定数据库时更改工厂。
有没有办法使用 JPA/Hibernate 获取 Persistence Unit / Datasource 的信息?
【问题讨论】:
标签: java database hibernate jakarta-ee jpa