[Seasar-user:13510] Re: [DBFlute] H2でBOOL(BIT)として定義したカラムがString型で生成される

kubo [E-MAIL ADDRESS DELETED]
2008年 4月 1日 (火) 14:00:42 JST


久保です。

橋本さん、ご報告ありがとうございます!

>  か?この点に関して、BOOLEANではなく0/1を使用するメリットというか理由をお
>  聞きしたいです。(最近DBまわりをさわるようになったのですが、近くには聞け
>  る人がいないもので・・・・)

せとさんフォローありがとうございます。
DB次第で色々変わるので、統一して0/1ってやってしまう習慣と
Booleanが使えるなら使おうという習慣とがある思われます。
ということで単に好みと習慣の問題ですね。
無論、Booleanが使えるならその方が制約が強いので
単純にそれだけを考えたらそっちのがよいかと思われます。

2008/4/1 a-hashimoto <[E-MAIL ADDRESS DELETED]>:
> 橋本です。
>
>  最新のBasicExampleにてBOOL(BIT)として定義したカラムがBoolean型のフィール
>  ドとして生成されるのを確認しました。
>  久保さん、どうもありがとうございます。
>
>  すみません。DBFluteとは離れてしまって申し訳ないのですが便乗質問です。
>  >これは、単に自分が普段FLGを0/1で表現してるからですね。。。
>  私はあまり深く考えずにフラグにはBOOLEAN型を設定していました。
>  0/1ということはTINYINTやINTEGERなんかを設定されているということでしょう
>  か?この点に関して、BOOLEANではなく0/1を使用するメリットというか理由をお
>  聞きしたいです。(最近DBまわりをさわるようになったのですが、近くには聞け
>  る人がいないもので・・・・)
>  なにか経験から来る理由等ありましたらご教示願います。
>
>  以上、よろしくお願いいたします。
>
>
>
>
>
>  >橋本です。
>  >
>  >久保さん、お世話になります。
>  >
>  >>修正したものをBasicExampleに「DBFlute-0.6.8(SNAPSHOT)」として
>  >>コミットしていますので、お手数ですがご確認下さい。
>  >ありがとうございます。確認してみます。
>  >
>  >
>  >
>  >>久保です。
>  >>
>  >>橋本さん、こんばんは
>  >>
>  >>
>  >>>  した場合に、自動生成されたentityで、BOOL(BIT)として定義しておいたカラム
>  >>>  がString型のフィールドとして生成されます。
>  >>
>  >>java.sql.Types#Booleanがマッピングの対象に入っていませんでした。
>  >>(恐らくTorqueが作成された時代には無かったためだと思われます)
>  >>
>  >>修正したものをBasicExampleに「DBFlute-0.6.8(SNAPSHOT)」として
>  >>コミットしていますので、お手数ですがご確認下さい。
>  >>
>  >>
>  >>>  サンプルではどうなっているのかと思い、
>  >>>  ・dbflute-basic-example
>  >>>  を落としてみたのですが、残念ながらBOOL(BIT)型の列を持つテーブルはありま
>  >>>  せんでした。
>  >>
>  >>これは、単に自分が普段FLGを0/1で表現してるからですね。。。
>  >>
>  >>
>  >>>  つい先日に質問したばかりで恐縮なのですが・・・。
>  >>
>  >>全然恐縮することないですよ。
>  >>フィードバックのおかげでDBFluteも発展していけるので。
>  >>
>  >>
>  >>2008/3/31 a-hashimoto <[E-MAIL ADDRESS DELETED]>:
>  >>> 橋本です。お世話になっております。
>  >>>  つい先日に質問したばかりで恐縮なのですが・・・。
>  >>>
>  >>>  DBにH2を使用している場合に、
>  >>>  ・replace-schema.sqlでBOOL(BIT)のカラムを持つテーブルを作っておく
>  >>>  ↓
>  >>>  ・[replace-shcema.bat]→[jdbc.bat]→[generate.bat]の一連の処理を実行。
>  >>>
>  >>>
>  >>>  した場合に、自動生成されたentityで、BOOL(BIT)として定義しておいたカラム
>  >>>  がString型のフィールドとして生成されます。
>  >>>  サンプルではどうなっているのかと思い、
>  >>>  ・dbflute-basic-example
>  >>>  を落としてみたのですが、残念ながらBOOL(BIT)型の列を持つテーブルはありま
>  >>>  せんでした。
>  >>>  そこで、replace-schema.sqlのPRODUCTテーブルのCREATE TABLE文をちょこっと
>  >>>  編集して実行してみました。
>  >>>  --------------------------------------------------------------
>  >>>  CREATE TABLE PRODUCT
>  >>>  (
>  >>>         PRODUCT_ID INTEGER IDENTITY NOT NULL PRIMARY KEY,
>  >>>         PRODUCT_NAME VARCHAR(50) NOT NULL,
>  >>>         PRODUCT_HANDLE_CODE VARCHAR(100) NOT NULL,
>  >>>         PRODUCT_STATUS_CODE CHAR(3) NOT NULL,
>  >>>         REGISTER_DATETIME DATETIME NOT NULL,
>  >>>         REGISTER_USER VARCHAR(200) NOT NULL,
>  >>>         REGISTER_PROCESS VARCHAR(200) NOT NULL,
>  >>>         UPDATE_DATETIME DATETIME NOT NULL,
>  >>>         UPDATE_USER VARCHAR(200) NOT NULL,
>  >>>         UPDATE_PROCESS VARCHAR(200) NOT NULL,
>  >>>         VERSION_NO BIGINT NOT NULL,
>  >>>         DELETE_FLG BIT                                   <------ 追記
>  >>>  )  ;
>  >>>  --------------------------------------------------------------
>  >>>  そうしますと、やはりDELETE_FLGはStringとして自動生成されました。
>  >>>  DELETE_FLGを、Stringではなくjava.lang.Booleanになるように生成したいので
>  >>>  すが、設定方法がわからない状態です。
>  >>>
>  >>>  /build-exampledb.propertiesのtorque.jdbcToJavaNativeMapに
>  >>>  ・BIT=java.lang.Boolean;
>  >>>  ・BIT=boolean;
>  >>>  等を追記してみたのですが、やはりStringとして生成されます。
>  >>>
>  >>>
>  >>>  build-exampledb.properties以外に設定が必要な項目などがあればご教示願いま
>  >>>  す。
>  >>>  以上、よろしくお願いいたします。
>  >>>
>  >>>
>  >>>  _______________________________________________
>  >>>  Seasar-user mailing list
>  >>>  [E-MAIL ADDRESS DELETED]
>  >>>  https://ml.seasar.org/mailman/listinfo/seasar-user
>  >>>
>  >>_______________________________________________
>  >>Seasar-user mailing list
>  >>[E-MAIL ADDRESS DELETED]
>  >>https://ml.seasar.org/mailman/listinfo/seasar-user
>  >
>  >
>  >_______________________________________________
>  >Seasar-user mailing list
>  >[E-MAIL ADDRESS DELETED]
>  >https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
>  _______________________________________________
>  Seasar-user mailing list
>  [E-MAIL ADDRESS DELETED]
>  https://ml.seasar.org/mailman/listinfo/seasar-user
>


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