HSQLDBが埋め込まれたJavaデスクトップアプリケーション(hibernateを使用)で1か月後にjarファイルにパッケージすると、HSQLDBにデータがまったくないようです。埋め込みHSQLDBアプリケーションでのデータなし
jarにismdb.scriptが存在し、データが含まれていることを確認しました。
ここ構造は
MyProjet
|___Main.java
|___resources
|____DATA
、ここでは私のhibernate.cfg.xmlのは、私はテーブルの上にSELECTをしようとすると、私は、Javaを取得
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:hsqldb:res:./data/ismdb</property>
<property name="connection.driver_class">org.hsqldb.jdbc.JDBCDriver</property>
<property name="hibernate.search.default.directory_provider">filesystem</property>
<property name="hibernate.search.default.indexBase">./data/</property>
<property name="hbm2ddl.auto">update</property>
<property name="connection.username">root</property>
<property name="connection.password">psw</property>
<mapping class="com.storeengine.model.Categories"/>
<mapping class="com.storeengine.model.Product"/>
<mapping class="com.storeengine.model.Row"/>
<mapping class="com.storeengine.model.Store"/>
<!-- DB schema will be updated if needed -->
<!-- <property name="hbm2ddl.auto">update</property> -->
</session-factory>
</hibernate-configuration>
です(HSQLDBデータがDATAフォルダ内にある)です。 lang.NullPointerException。
私はすべての種類のパスを試しましたが、プロジェクトの実際のDATAフォルダにデータベースパスを設定すると唯一のケースですが、もちろんソースコードでソフトウェアを出荷することはできません。私はそれに含まれているすべてを持つ単一のJARを持つ必要があります。
私は本当に立ち往生しています。 ありがとう
私はあなたの質問を正しく理解しているかどうかはわかりません。本番環境でHSQLDBを使用してリリースすることを意味しますか? –
あなたのURLは正しくありません。これは、 'jdbc:hsqldb:res:/ resources/DATA/ismdb'(大文字と小文字が区別され、Jarのルートから始まる)のようにする必要があります。 – fredt
@KennyTaiHuynhはい私はプロダクションで使用しようとしています。 – josh