MySQL Server 5.7.18(Java 8、ojdbc8)への接続に問題があり、Hibernate 5とJPAにアップグレードしています。コマンドラインからmysqlを使用すると、データベースに接続してアクセスするだけで、サーバーが稼働していることがわかり、ユーザー/パスワードが正しいことがわかります。 PeopleEntity.classは、マッピングファイルではなくアノテーションを使用します。Hibernate 5とJPAを使用してMySQLサーバに接続する際にエラーが発生しました
例外は「要求されたサービス[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]を作成できません」です。私は "jdbc:oracle:thin:@localhost:3306:TestHibernate"と "jdbc:mysql:// localhost:3306/TestHibernate"を試しました。
問題を修正する方法についてのご意見はありがとうございます。
のpom.xmlからのpersistence.xml<persistence
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
<persistence-unit
name="PeopleEntity"
transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>com.billsdesk.util.hibernate.tests.PeopleEntity</class>
<properties>
<property
name="hibernate.connection.driver_class"
value="com.mysql.jdbc.Driver"></property>
<property
name="javax.persistence.jdbc.driver"
value="oracle.jdbc.OracleDriver"></property>
<property
name="hibernate.dialect"
value="org.hibernate.dialect.MySQL5Dialect" />
<!-- URL, user, and password are passed as properties -->
</properties>
</persistence-unit>
</persistence>
から
final Map<String, String> properties = new HashMap<String, String>();
properties.put("javax.persistence.jdbc.user", LoginInfo.getLoginInfo().getUsername());
properties.put("javax.persistence.jdbc.password", LoginInfo.getLoginInfo().getPassword());
properties.put("javax.persistence.jdbc.url", "jdbc:oracle:thin:@localhost:3306:TestHibernate");
// or
properties.put("javax.persistence.jdbc.url", "jdbc:mysql://localhost:3306/TestHibernate");
try {
Persistence.createEntityManagerFactory("PeopleEntity", properties);
} catch (final PersistenceException error) {
Logger.error(getClass(), error.getMessage());
}
<dependencies>
<!-- Hibernate -->
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.10.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.2.10.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.persistence/persistence-api -->
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
</dependencies>
Hibernateは、MySQLはオラクルの製品であるという事実にもかかわらず
14:00:45.861 [main] INFO org.hibernate.Version - HHH000412: Hibernate Core {5.2.10.Final}
14:00:45.862 [main] INFO org.hibernate.cfg.Environment - HHH000206: hibernate.properties not found
14:00:45.910 [main] INFO org.hibernate.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
14:00:46.088 [main] WARN org.hibernate.orm.connections.pooling - HHH10001002: Using Hibernate built-in connection pool (not for production use!)
14:00:46.127 [main] INFO org.hibernate.orm.connections.pooling - HHH10001005: using driver [oracle.jdbc.OracleDriver] at URL [jdbc:oracle:thin:@localhost:3306:TestHibernate]
14:00:46.127 [main] INFO org.hibernate.orm.connections.pooling - HHH10001001: Connection properties: {user=sa, password=****}
14:00:46.128 [main] INFO org.hibernate.orm.connections.pooling - HHH10001003: Autocommit mode: false
14:00:46.130 [main] INFO org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl - HHH000115: Hibernate connection pool size: 20 (min=1)
2017-07-06 14:00:46 SEVERE Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
おかげでたくさん。私はそのようなものでなければならないと考えました。私はあなたの例を使用するので、私はまだ私のhibernate.cfg.xmlファイルを持っています。 –
私はタイムゾーンの問題に関してエラーが発生していたので、mysqlを5.1.39にダウングレードしなければなりませんでした。それ以外はすべて良いです。再度、感謝します。 –