mariadb-java-client-2.4.xから、ドライバ経由で取得するデータベースの名前が変わったようです。こういうエラーになります。
Not able to detect platform for vendor name [MariaDB1010.3.13-MariaDB]. Defaulting to [org.eclipse.persistence.platform.database.DatabasePlatform]. The database dialect used may not match with the database you are using. Please explicitly provide a platform using property "eclipselink.target-database".
で、少なくとも2019-03-17時点においては、データベース名にmysql
という文字列が含まれていないと正しく検知できません。
なぜそうなのかは、
を参照。
解決策
そのうち対応されると思いますが、今すぐ解決したいなら以下の通り。お好きな方を。
1. Sessionを書き換える
public class MariaDBSessionConfigurator implements org.eclipse.persistence.config.SessionCustomizer { @Override public void customize(final Session s) throws Exception { s.getProperties().put(PersistenceUnitProperties.SCHEMA_DATABASE_PRODUCT_NAME, "mysql"); } }
2. JPAプロパティで指定
- JPAプロパティの
javax.persistence.database-product-name
にmysql
とぶち込む。