43976
JPA(EclipseLink)を使って、SQLServer/Oracle/PostgreSQLのいずれでも利用できるJavaEEアプリケーションを作っています。  
その中で、どうしても上記3種を区別して処理を分ける必要が生じました。  
どうやったらアプリケーション上から動的に検出できるのか、何か方法はあるでしょうか？
CC BY-SA 4.0
2018-05-14T07:07:09.387
43972
2018-06-01T06:04:47.830
8078
question
java jpa
JPAで接続しているデータベースの種類を動的に識別する方法
動作確認してませんが、こんな実装で取得した`databaseProductName`で判別できないでしょうか。

```

    java.sql.Connection connection = entityManager.unwrap(java.sql.Connection.class);
    String databaseProductName = connection.getMetaData().getDatabaseProductName();
    
```
CC BY-SA 4.0
2018-05-14T08:33:35.583
43976
2018-05-14T08:33:35.583
21092
43972
answer
申し訳ありません、EclipseLinkでしたね。eclipselink.target-databaseプロパティを使用してください。

<http://www.eclipse.org/eclipselink/documentation/2.7/jpa/extensions/persistenceproperties_ref.htm#target-
database>
CC BY-SA 4.0
2018-06-01T06:04:47.830
44450
2018-06-01T06:04:47.830
28737
43972
answer