こちらで、直接ソースを修正して試してみました。対応する際の参考になればと思います。
正常に論理名が DDL に出力され、実際にMySQLで試しコメントが登録されました。 (Mac OS X 10.5 の Eclipse-3.6.1 にて)
# ---------------------------------------------------------- # AbstractDialectの修正 # -------------------- AbstractDialect.createColumnDDL() の引数に、 「boolean comment」を追加。オーバーライド、 呼び出している箇所を随時修正。 AbstractDialect.createTableDDL()の 304行目付近を以下のように修正。 /- - - - - - - - - - - - - - - - - - - - - - - - - - - - <旧> sb.append(LS); sb.append(")").append(separator).append(LS);; <新> sb.append(LS); sb.append(")"); setupTableOption(root, model, schema, drop, alterTable, comment, additions, sb); sb.append(separator).append(LS);; - - - - - - - - - -/ AbstractDialectに、メソッドを新しく追加。 /- - - - - - - - - - - - - - - - - - - - - - - - - - - - protected void setupTableOption(RootModel root, TableModel model, boolean schema, boolean drop, boolean alterTable, boolean comment, StringBuilder additions, StringBuffer sb) { // do nothing as default } - - - - - - - - - -/ # ---------------------------------------------------------- # MySQLクラスの修正 # -------------- MySQLDialect.createColumnDDL() の AUTO_INCREMENT の処理の後にコメント処理の追加。 /- - - - - - - - - - - - - - - - - - - - - - - - - - - - if(comment) { if(columnModel.getLogicalName() != null && columnModel.getLogicalName().length() > 0) { ddl += " COMMENT '" + columnModel.getLogicalName() + "'"; } } - - - - - - - - - -/ MySQLDialectにて、setupTableOption() を オーバーライドしてコメント処理を追加。 /- - - - - - - - - - - - - - - - - - - - - - - - - - - - @Override protected void setupTableOption(RootModel root, TableModel model, boolean schema, boolean drop, boolean alterTable, boolean comment, StringBuilder additions, StringBuffer sb) { super.setupTableOption(root, model, schema, drop, alterTable, comment, additions, sb); if(comment) { if(model.getLogicalName() != null && model.getLogicalName().length() > 0) { sb.append("COMMENT='").append(model.getLogicalName()).append("'"); } } } - - - - - - - - - -/
ちなみに、MySQLのコメント領域は、60文字までという制限があるようですが、 ひとまず論理名に関しては現実的に60文字を超えることはないかなと思われるので、 特に何も考慮しない形になっています。恐らく、別件の「説明」もコメントに追加する 処理を対応する場合は考慮が必要になってくるかと思います。
こちらの対応、よろしければ修正されたソースをメールでお送りいただけないでしょうか?
こちらの対応、よろしければ修正されたソースをメールでお送りいただけないでしょうか?
mysql-comment.zip を添付致しました。 重要な修正は、AbstractDialect と MySQLDialect ですが、 メソッド引数の追加で影響を受けたクラスも含まれてます。
JDK5で存在しない(はず)の java.sql.Types の定数への参照箇所を自分の環境ではコメントアウトしているのですが、zip に固める前に元に戻しています。 具体的には MSSQLDialect と PostgreSQLDialect です。(Types.NCHAR, Types.NVARCHAR, Types.SQLXML)
ありがとうございます。取り込ませていただきました。
元の投稿はこちら: http://sourceforge.jp/forum/message.php?msg_id=56556
現在(Version 1.0.8)、OracleとSybaseだけのようですが、MySQLに対応して頂けないでしょうか?
MySQLのDBコメントの仕様はちょっと特殊なので、Oracleなどに比べて実装がややこしいのは承知の上ですが、一応ニーズがあるということで要望として挙げさせてください。
以下は、MySQLにおけるDBコメントの設定方法の例です。