[Seasar-user:17510] dbfluteのgenerateタスクにてIllegalStateException

ECS内田 [E-MAIL ADDRESS DELETED]
2009年 5月 25日 (月) 16:08:22 JST


内田と申します。

dbflute-0.9.4.1を使用しております。
以下の2テーブルを用意し、
generateタスクを実行したところ
IllegalStateExceptionが発生してしまいます。

テーブル設計に問題があるのでしょうか。。。

何か解決の手立てはございますでしょうか?
よろしくお願いいたします。


CREATE TABLE  `sample1`.`group` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` text CHARACTER SET latin1 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

CREATE TABLE  `sample1`.`users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `user_name` varchar(255) CHARACTER SET latin1 NOT NULL,
  `passwd` varchar(255) CHARACTER SET latin1 NOT NULL,
  `group_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `FK_users_1` (`group_id`),
  CONSTRAINT `FK_users_1` FOREIGN KEY (`group_id`) REFERENCES `group` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;


dbflute.logの抜粋--------------------------------------------

Failed to execute DBFlute Task 'JDBC'!

[Basic Properties]
database  = mysql
language  = java
container = seasar

[Database Properties]
driver = com.mysql.jdbc.Driver
url    = jdbc:mysql://localhost:3306/sample1
schema = 
user   = root

[Runtime Exception]
exception class   = class java.lang.IllegalStateException
* * * * * * * * * */
java.lang.IllegalStateException: The handling for AutoIncrement threw the SQLException: primaryKeyColumnName=id tableMetaInfo=group(TABLE):  ignoredMessage=You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group where 1 = 0' at line 1
	at org.seasar.dbflute.helper.jdbc.metadata.DfAutoIncrementHandler.isAutoIncrementColumn(DfAutoIncrementHandler.java:76)
	at org.apache.torque.task.TorqueJDBCTransformTask.isAutoIncrementColumn(TorqueJDBCTransformTask.java:728)
	at org.apache.torque.task.TorqueJDBCTransformTask.generateXML(TorqueJDBCTransformTask.java:334)
	at org.apache.torque.task.TorqueJDBCTransformTask.doExecute(TorqueJDBCTransformTask.java:184)
	at org.seasar.dbflute.task.bs.DfAbstractTask.execute(DfAbstractTask.java:83)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
	at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
	at org.apache.tools.ant.Task.perform(Task.java:348)
	at org.apache.tools.ant.Target.execute(Target.java:357)
	at org.apache.tools.ant.Target.performTasks(Target.java:385)
	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
	at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
	at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
	at org.apache.tools.ant.Main.runBuild(Main.java:698)
	at org.apache.tools.ant.Main.startAnt(Main.java:199)
	at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
	at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group where 1 = 0' at line 1
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:3099)
	at com.mysql.jdbc.Statement.executeQuery(Statement.java:1169)
	at org.seasar.dbflute.helper.jdbc.metadata.DfAutoIncrementHandler.isAutoIncrementColumn(DfAutoIncrementHandler.java:49)
	... 20 more
2009-05-25 15:56:59,828 [main] INFO  (DfAbstractTask#execute():130) - 




Seasar-user メーリングリストの案内