2017-06-01 11 views
0

hibernateとh2を利用してスプリングブートアプリケーションを作成しようとしています。オンラインで見つけたことから、これを行うことができますが、アプリケーションの起動に問題があります。 Hibernateは私が作成したh2データベースに接続できないと不平を言っています。spring/hibernateでH2組み込みデータベースを実行しています

私の理論は、アプリケーションがデータベースを利用できるようにする必要がありますが、休止状態ではアプリケーションを接続せずに起動できないということです。

私はこの理論で正しい軌道に乗っていますか、誰かがこれを回避する方法を知っている同様の問題がありましたか?このサンプルプロジェクトはあなたを助けることができる

Hibernateの設定

**<?xml version="1.0" encoding="UTF-8"?> 
<hibernate-configuration> 
    <session-factory> 
     <!--Database connection settings --> 
     <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property> 
     <property name="connection.url">jdbc:h2:~/todo</property> 
     <property name="connection.username">username</property> 
     <property name="connection.password" /> 

     <!--Set the database dialect --> 
     <property name="dialect">org.hibernate.dialect.H2Dialect</property> 

     <!--Echo all executed SQL to stdout--> 
     <property name="show_sql">true</property> 

     <!--Drop and re-create the database schema on startup--> 
     <property name="hbm2ddl.auto">create</property> 

     <!--Name the annotated Entity classes --> 
     <mapping class="com.todo.beans.User" /> 

    </session-factory> 
</hibernate-configuration>** 

H2設定

+0

あなたはLinuxですか? – Thihara

答えて

2

<property name="connection.driver_class">org.h2.Driver</property> <property name="connection.url">jdbc:h2:mem:todo;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE </property>

問題は、ドライバクラスである休止状態設定のプロパティを次のように変更。あなたはそのままURLを保管することができます。

+0

これは機能しました!なぜこれが解決策であったかについての少しの背景を提供していますか? – Kalkrin

+0

実際、java.sqlパッケージのDriverManagerクラスはconnection.driver_classプロパティを使用します。DriverManagerクラスは、ユーザーとドライバの間のインターフェイスとして機能します。 利用可能なドライバを追跡し、データベースと適切なドライバとの間の接続を確立する処理を行います。 [DriverManager](https://docs.oracle.com/javase/8/docs/api/java/sql/DriverManager.html)は、この初期ドライバをロードします。 – abhi3232

関連する問題