現在、Spring MVCを使用したシステム開発を行っています。
JPAを使用し、初期データを入れ込むときに、文字化けが起こります。
解決方法について教えていただけると助かります。
詳細は以下の通りです。
【システム構成】
OS・・・Windows7 Professional
Java・・・1.8.0.66
開発環境・・・STS3.4.0
フレームワーク・・・Spring MVC
使用DB・・・HSQLDB2.2.9(オンメモリ)
設定文字コード・・・UTF-8
【状況】
●Spring MVCを起動するときにスクリプト(insert文)を読み込み、HSQLDB(オンメモリ)に登録する
●テーブル登録にSQL文は使用せず、エンティティクラスを定義する形にする
●Hibernate JPAを使用し、設定はpersistence.xmlに記述している
※hibernate.hbm2ddl.import_filesで設定
【出来ていること】
●エンティティクラスの定義に従い、HSQLDBにテーブルが作成される
●スクリプトを読み込み、テーブルにデータがinsertされる
●プログラムから登録した場合、日本語でも文字化けせず登録できる
【問題点】
●スクリプトで登録する場合、日本語が混じっていると文字化けする
<例>
<入れたいデータ>
prod_class_code・・・A
prod_class_name・・・パソコン
upd_username ・・・admin
reg_datetime ・・・2015-11-19 12:23:01.511
upd_datetime ・・・2015-11-19 12:23:01.511
<格納結果>
prod_class_code・・・A
prod_class_name・・・繝代た繧ウ繝ウ
upd_username ・・・admin
reg_datetime ・・・2015-11-19 12:23:01.511
upd_datetime ・・・2015-11-19 12:23:01.511
【関係するファイル】
●persistence.xml
<persistence-unit name="persistenceUnit"
transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
<property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbc.JDBCDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:mydata" />
<property name="hibernate.hbm2ddl.import_files" value="sql/load.sql" />
</properties>
</persistence-unit>
●スクリプト
src/resources/sql/load.sql
INSERT INTO M_product_class (prod_class_code, prod_class_name, upd_username, reg_datetime, upd_datetime) VALUES ('A', 'パソコン', 'admin', now(), now());
●エンティティクラス
package entity;
import java.sql.Timestamp;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class M_product_class {
@Id
private String prod_class_code;
private String prod_class_name;
private String upd_username;
private Timestamp reg_datetime;
private Timestamp upd_datetime;
/* アクセサメソッドは省略 */
}