是否有可能以编程方式知道JPA中使用哪个数据库服务器?我认为,有一种方法,否则,JPA无法在运行时将JPQL
转换为native query
。我的程序还需要知道DB Server Type
。这个功能有什么功能吗?
我使用eclipseLink
& jpa 2.0
我的预期计划是:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPA");
String dbPlatform = emf.getDBPlatform();
System.out.println(dbPlatform);
输出:
Oracle
MySql
MSSql
DB2
....
答案 0 :(得分:5)
我从来不需要它,但我认为要走的路是获取JDBC connection并在其属性中找到这条信息。特别是getClientInfo()和getMetaData()可能会很有趣。
这可能是特定于实现的,但正如您所说的使用EclipseLink,您可以使用以下内容:
java.sql.Connection connection = entityManager.unwrap(java.sql.Connection.class);
PS:我想你想解决一个有问题的问题。