DBからのリバース

 エンティティつくるの面倒だなあとか書いてたら、「2005年のはぶにっき」で親切にもSQL・プロシージャで楽をする方法をとりあげていただいてしまい、恐縮。そういう手がありますね。

 さらにコメント欄を見ているとS2DAOMakerってDBからのリバースもできるようですね(エクセル設定ファイルからの自動生成だけかと思ってました)。
 さっそく、このへんを参考にやってみることに。ダウンロードして展開、VelocityとPOI、JDBCをlibに追加します。設定ファイルres/setting.xmlをDBにあわせて修正。
 んで、ant reverseを、えいっ、実行。

C:\S2DaoMaker>ant reverse
Buildfile: build.xml

compile:

reverse:
     [java] 2005/03/30 10:23:24 cx.ath.mof.s2daomaker.DBReverseMakeExcel main
     [java] 情報: DBリバース開始・・・
     [java] java.lang.IllegalArgumentException: Sheet name cannot be blank, greater than 31 chars, or contain any of /\*?[]
     [java]     at org.apache.poi.hssf.record.BoundSheetRecord.setSheetname(BoundSheetRecord.java:175)
     [java]     at org.apache.poi.hssf.model.Workbook.setSheetName(Workbook.java:458)
     [java]     at org.apache.poi.hssf.usermodel.HSSFWorkbook.setSheetNameHSSFWorkbook.java:269)
     [java]     at cx.ath.mof.s2daomaker.AbstractMakeExcel.makeExcel(AbstractMakeExcel.java:65)
     [java]     at cx.ath.mof.s2daomaker.AbstractMakeExcel.make(AbstractMakeExcel.java:26)
     [java]     at cx.ath.mof.s2daomaker.DBReverseMakeExcel.main(DBReverseMakeExcel.java:47)
     [java] Exception in thread "main"

BUILD FAILED
C:\S2DaoMaker\build.xml:45: Java returned: 1

Total time: 10 seconds

 あれ? なんでやろ? テーブル名空欄なわけないし、31文字もないはずなんだけどな、それともへんな文字使ってるんだろか?