[Seasar-user:16945] Re: [S2JDBC]チュートリアルをmysql対応にする方法について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 2月 18日 (水) 21:00:23 JST
小林 (koichik) です.
Date: Wed, 18 Feb 2009 18:42:50 +0900 (JST)
From: [E-MAIL ADDRESS DELETED]
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:16943] [S2JDBC]チュートリアルをmysql対応にする方法について
> JDBCManagerの動作がうまくいかないので、S2JDBCの
> チュートリアルを使って見ているのですが、
> ユニットテストがうまく動作しません。
(略)
> /src/test/java/examples 以下のユニットテストを
> 実行したた所、
> GetCountTest.java
> SqlGetSingleResultTest.java
> 以外は下記のようなエラーが発生します。
>
> org.seasar.framework.exception.SQLRuntimeException: [ESSR0072]SQLで例外(SQL=[], Message=[Invalid value for getInt() - 'SALESMAN'], ErrorCode=0, SQLState=S1009)が発生しました
> at org.seasar.extension.jdbc.query.AbstractQuery.handleResultSet(AbstractQuery.java:450)
> at org.seasar.extension.jdbc.query.AbstractSelect$6.handle(AbstractSelect.java:429)
(略)
> create table employee (
> id int,
> name varchar(255) not null,
> job_type varchar(30) not null,
チュートリアルでは job_type は enum を使って
数値型にマッピングするかのように書かれてますが,
hsql/create.sql では varchar になってますね...
src/test/data/test.script は integer になって
いるので,hsql/create.sql が古いままなのだと
思われます.
とりあえず,Employee クラスの jobType に
@Enumerated(EnumType.STRING)
public JobType jobType;
とアノテーションを指定してください.
これでエンティティ側も job_type を文字列で
扱うようになります.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内