[Seasar-user:20912] S2JDBCにて、Mysqlのboolean型のカラムに文字列を挿入しようとする。

Masao Suda [E-MAIL ADDRESS DELETED]
2011年 7月 28日 (木) 17:01:46 JST


須田と申します。
お世話になっております。

S2JDBCを利用しているのですが、以下のエラーが発生してしまいます。
ログ出力されているSQLをMySQLで実行すると、
ERROR 1366 (HY000): Incorrect integer value: 'true' for column 'SYSTEM_FLG' at row 1
となるため、boolean型に文字列を設定しようとしているのが原因と思われるのですが、
解決するにはどのような設定をすればよいでしょうか?

--- ログ ---
DEBUG 2011-07-28 16:44:45,671 ["http-bio-8080"-exec-7] update user set ACCOUNT = 'admin', NAME = 'システム管理者', PASSWORD = 'password', MAIL_ADDRESS = '', SYSTEM_FLG = 'true', DEPARTMENT_ID = 0, CREATE_TIMESTAMP = '2011-07-08 00:03:23', UPDATE_TIMESTAMP = '2011-07-28 16:44:45.671000000', DELETE_TIMESTAMP = null, VERSION = VERSION + 1 where ID = 1 and VERSION = 0
DEBUG 2011-07-28 16:44:45,671 ["http-bio-8080"-exec-7] END jp.co.interaction_i.service.UserService#update([E-MAIL ADDRESS DELETED]) Throwable:org.seasar.framework.exception.SQLRuntimeException: [ESSR0072]SQLで例外(SQL=[update user set ACCOUNT = ?, NAME = ?, PASSWORD = ?, MAIL_ADDRESS = ?, SYSTEM_FLG = ?, DEPARTMENT_ID = ?, CREATE_TIMESTAMP = ?, UPDATE_TIMESTAMP = ?, DELETE_TIMESTAMP = ?, VERSION = VERSION + 1 where ID = ? and VERSION = ?], Message=[[ESSR0072]SQLで例外(SQL=[update user set ACCOUNT = ?, NAME = ?, PASSWORD = ?, MAIL_ADDRESS = ?, SYSTEM_FLG = ?, DEPARTMENT_ID = ?, CREATE_TIMESTAMP = ?, UPDATE_TIMESTAMP = ?, DELETE_TIMESTAMP = ?, VERSION = VERSION + 1 where ID = ? and VERSION = ?], Message=[1452], ErrorCode=23000, SQLState={3})が発生しました : [SQLで例外(Message=[Cannot add or update a child row: a foreign key constraint fails (`sgpr001`.`user`, CONSTRAINT `user_FK1` FOREIGN KEY (`DEPARTMENT_ID`) REFERENCES `department` (`ID`!
 ))], ErrorCode=1452, SQLState=23000)が発生しました。], [Cannot add or update a child row: a foreign key constraint fails (`sgpr001`.`user`, CONSTRAINT `user_FK1` FOREIGN KEY (`DEPARTMENT_ID`) REFERENCES `department` (`ID`))], ErrorCode=1452, SQLState=23000)が発生しました
DEBUG 2011-07-28 16:44:45,718 ["http-bio-8080"-exec-7] トランザクションをロールバックしました。tx=[FormatId=4360, GlobalId=1311838291468/17, BranchId=]

--- DDL ---
create table user (
    ID bigint not null auto_increment,
    ACCOUNT varchar(20) not null,
    NAME varchar(50),
    PASSWORD varchar(20) not null,
    MAIL_ADDRESS varchar(255),
    SYSTEM_FLG boolean default false,
    DEPARTMENT_ID bigint,
    CREATE_TIMESTAMP datetime,
    UPDATE_TIMESTAMP datetime,
    DELETE_TIMESTAMP datetime,
    VERSION bigint,
    constraint user_PK primary key(ID)
);

--- エンティティ(一部) ---
	/**
	 * システムフラグ
	 */
	@Column(columnDefinition="default false")
	public boolean systemFlg;

--- jdbc.dicon ---
	<component name="xaDataSource"
		class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
		<property name="driverClassName">
			"com.mysql.jdbc.Driver"
		</property>
		<property name="URL">
			"jdbc:mysql://localhost:3306/proj001"
		</property>
		<property name="user">"projuser"</property>
		<property name="password">"projpass"</property>
	</component>


--- 環境 ---
jdk:1.6.0_24
Seasar:2.4.44
SaStruts:1.0.4-sp8
S2jdbc-gen:2.4.44
Eclipse:Indigo(build id:20110615-0604)
Dolteng:0.41.0
Apatche-tomcat:7.0.16
MySQL:essential-5.1.57



-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20110728/bbba3552/attachment.html>


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