ImmutableMap.Builder<String, String> properties = ImmutableMap.<String, String>builder()
.put("hibernate.connection.url", dbConnectionString)
.put("hibernate.connection.user", dbUser)
.put("hibernate.connection.password", dbPassword)
.put("hibernate.c3p0.min_size", minDbConnections)
.put("hibernate.c3p0.max_size", maxDbConnections)
.put("hibernate.c3p0.timeout", connectionTimeout)
.put("hibernate.c3p0.preferredTestQuery", " SELECT 1")
.put("hibernate.connection.Charset", "utf8")
.put("hibernate.connection.characterEncoding", "utf8")
.put("hibernate.connection.useUnicode", "true");
if (connectionTestOnCheckout) {
properties.put("hibernate.c3p0.testConnectionOnCheckout", "true");
} else {
if (connectionTestOnCheckin) {
properties.put("hibernate.c3p0.testConnectionOnCheckin", "true");
}
properties.put("hibernate.c3p0.idle_test_period", dbIdleCheckInterval);
}
entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnitName, properties.build());