S2JDBC-Gen

Java7でソートのロジックが変更されている件

http://seasarproject.g.hatena.ne.jp/halflite/20130305/s2jdbcgen3 コメントできないのでトラックバックで。元の並びに依存したComparatorがダメらしいですね。対応版のコードおいておきます。 https://gist.github.com/nakamura-to/5096537 とりあえずは…

コードファースト

Entity Framework 4でコード・ファースト開発が注目を集めているとかいないとか。 S2JDBC-Genでも「コードファースト」実現できます、.NETじゃなくてJavaですが。

S2JDBC-GenでAntの出力がコンソール上で化ける件が解決っぽい

解決方法をまとめてくれた方がいます。 Eclipse 3.6 + Ant + S2JDBC-Gen 文字化け、コンソール停止 私のほうでも試してみてうまくいったらドキュメントに反映させたいと思います。

WindowsのEclipse3.5のAntの問題

WindowsのEclipse3.5のAntなんですが、実行するAntタスクが日本語をログ出力していると、コンソール出力が行われません。Eclipseのエンコーディングの問題なんですよ。だれか解決して〜。現時点では、Eclipse3.5のAntからS2JDBC-GenのAntタスクをうまく動か…

Namesクラス と SqlFilesクラス

たけぞうさんからリクエストがあったNamesクラスとSqlFilesクラスに対応しました。次のバージョン(2.4.40)に入ります。 Namesクラスは、Gen-Namesタスクを実行すれば自動で作られるようにしました(生成しないことも可)。 SqlFilesクラスは、こんなantタ…

S2JDBC-Gen の正式版を含んだ Dolteng 0.35.0 がリリース

S2JDBC-Gen 2.4.34 が含まれているDolteng 0.35.0 がリリースされました!DoltengのインストールからS2JDBC-Genを実際に使うまでの一連の手順は、S2JDBC-Genでデータベースリファクタリングに以前書いたので、ぜひ試してもらえればと思います。このエントリ…

S2JDBC-Genファイナル(正式版)リリース

これまで、0.9.xというバージョンでベータ版扱いでしたが、先日のリリースよりSeasar2本体のバージョンに合わせ正式版(2.4.34)としてリリースしました。ブログやMLなどでいろんな方からフィードバックをいただき、面白いものができたんじゃないかと思って…

新しいテーブルの作成

S2JDBC-Genで、たまに勘違いされてしまうのは、新しいテーブルを作成するときです。 まちがい CREATE TABLE文を作成する CREATE TABLE文を実行しテーブルをDB上に作成する AntでGen-Entityを実行しテーブルに対応するエンティティクラスを作成する テーブル…

Gen-Entityでの日付型プロパティ

これまで、S2JDBC-GenのGen-Entityタスクは、日付型のカラムに対するプロパティは@Temporalつきのjava.util.Date型であるものとしてコードを生成してきました。こんな感じ。 import java.util.Date; ... @Entity public class Foo { /** idプロパティ */ …

かんちがい

S2JDBC-Genで、同じテーブルにマッピングされた別エンティティがあったらマージしてひとつDDLを生成しているよと今日しゃべっちゃいましたけど、コードみるとやっていませんでした。。。 当初、考えたけど、テーブルとエンティティは1対1というシンプルなの…

Eclipseプラグイン q4e で S2JDBC-Gen 0.9.4 を使うときの注意

q4eでS2JDBC-Gen 0.9.4へのdependencyを設定すると、環境によってはpom.xmlのエディタに「tools.jarが解決できません」みたいなエラーが出ます。その場合は、Eclipseを起動するときに明示的に(JREではなく)JDKのjavawを使うようにしてください。Windowsを…

S2JDBC-GenのFAQつくりました

疑問1.S2JDBC-Genでentityを作るときの挙動entityを作るとDBではintで定義しているカラムが何故かStringになる。 s2jdbc.diconの設定を忘れてしまうと確かにこうなるんですよねー(実は自分もはまったことあったり)。 そこそこ、動いてしまうのでわかりに…

ダンプファイルのExcel対応

S2JDBC-Genは、データベースのデータをCSV形式でダンプします。 秋のSeasarカンファレンスで、CSV以外にExcelに対応しないのかと質問されて少し検討したのですが、当面は対応しない方向で考えています。 というのも、CSVエディタ(Cassava Editorなど)を使…

S2JDBC-Genの効果的な利用法

ドキュメントにS2JDBC-Genの効果的な利用法という項目を付け加えました。DBスキーマからエンティティを何度も生成し直す手法には向いていないですよ(その場合はDBFluteがいいですよ)、と書いておきました。S2JDBC-Genの売りは、なんと言っても「DDLの生成…

S2JDBC-Gen 0.9.4 ハイライト

S2JDBC-Genの0.9.4がリリースされています。ChangeLogやダウンロードのURLについてはこちらを参照してください。0.9.3から移行する場合は、移行の注意点を確認お願いします。0.9.4の新しい機能について軽く紹介してみます。 Gen-SqlFileTestタスク S2JDBCはS…

@ReferentialConstraintで参照動作の指定

[Seasar-user:16411] [S2JDBC-Gen] 外部キー生成DDLで制約オプションが反映されない の件です。S2JDBCの次バージョンで導入されるReferentialConstraintアノテーションで対応するのはどうでしょうか。対応するとしたらこんな感じになります。 @Entity public…

日本語テーブルを使うとOracleで一意キーの情報がとれない件

追記 影響を受けるのは2箇所ではなく3箇所でした。 10gや11gで発生することがわかっています。どいうことかというと、 java.sql.DatabaseMetaData metaData = ... metaData.getIndexInfo(null, "schema", "あいうえお", true, false); // 3番目のパラメータ…

Gen-Ddlで外部キー制約の生成を制御する

追記 (※)小林さんに「外部キー」と「外部キー制約」は意味が違うよねという指摘を受けたのでちょっと全体的に言葉を置き換えてみました。 Gen-Ddlで外部キー生成を抑制するアイデアのつづきです。いろいろアイデアがでて練った結果、次の2つの機能を提供する…

Gen-Ddlで外部キー生成を抑制するアイデア

id:mokkouyou2001さんが現在比較中2というエントリでS2JDBCとDBFluteを比較しています(おもしろいです)。その中で、S2JDBC-Genの弱点をつかれてしまいました > 制約がない場合の結合Entityにアノテーションとフィールドを適切に設定すれば動くS2JDBCが素…

SQLファイルに記述されたSQLをテストするGen-SqlFileTestタスク

Seasarカンファレンスでid:jfluteさんにDBFluteのOutsideSqlTestを説明してもらって、とても良い機能だとおもったので、考え方を参考にさせていただきました。S2JDBC-Genでは、AntのGen-SqlFileTestタスクにより専用のテストクラスを生成し、このテストクラ…

S2JDBC-Genでコメント管理できるようにしました

DB ←→ Java の間でコメントを相互に反映できると便利と感じている方が多いようなのでS2JDBC-Genでも対応しました。 S2JDBC-Gen でコメントの管理 s2jdbc-genでコメントを管理したい [Seasar2][dbflute][S2JDBC] 現在比較中 DBFluteにも負けてられないしね!…

S2JDBC-Genでデータベースリファクタリング

このエントリでは、S2JDBC-Genを使って手軽にデータベースリファクタリングをする方法を紹介します。S2JDBC-Genは、Javaコード(S2JDBCのエンティティ)の修正をデータベーススキーマに反映させるツールです。 S2JDBC-Genの実行に必要な動作環境は、Eclipse…

Doltegn で SAStruts + S2JDBC + S2JDBC-Gen の Scaffold を実行する場合の注意点

Dolteng の Database View から Scaffold をする際ですが、Scaffold実行前にS2JDBC-Genでエンティティやサービスのクラスをあらかじめ作成しておいてください。 具体的には下のエントリで紹介した、「s2jdbc-gen-build.xml」のgen-entityターゲットを起動し…

PostgreSQLのTEXT型はCLOBか否か? その2

PostgreSQLのTEXT型はCLOBか否か?のつづきです。PostgreSQLのJDBCドライバでは、CLOBをOID型(ラージオブジェクト)にマッピングしているのですが、文字としてではなくあくまでバイト列として格納しているということがわかりました。つまり、文字にたとえば…

PostgreSQLのTEXT型はCLOBか否か?

http://jfut.featia.net/diary/20081010.html#p01 の話です。コメントしたつもりだけど、反映されなかったので、一応こっちにも書いておきます。 公式のドキュメントでは情報が足りなくていろいろ探していたのですが、開発者のKris JurkaさんがCLOBはTEXT型…

S2JDBC-Gen 0.9.2 がリリースされました

0.9.1からの変更点はWikiに記載されているとおりです。 http://www.seasar.org/wiki/index.php?SeasarWhatsNew%2F2008-10-08#sf40abde ドキュメントにも書いていますが、改めて強調しておくと、S2JDBC-Genのコンセプトは「エンティティクラスの修正をデータ…

アクセッサーつきのエンティティを生成するには?

id:agtさんからの要望ですが、今のところ、テンプレートファイルを差し替える以外の方法はないです。優先度はちょっと低めになってしまいますが、将来的にはAntタスクでuseaccessor="true"のように指定できるようにしようと思います。アクセッサーを生成する…

CSVの扱い

ExcelってCSVの扱い長けているものだと思い込んでいましたが、使ってみると非常に使いにくいです。CSVを取り込むときにウィザードを実行しないといけなかったり、保存するときのダブルクォートの扱いを指定できなかったりなど。代わりにCSVエディタのCassava…

S2JDBC-Genでテンプレートファイルを差し替えるには?

テンプレートを格納したディレクトリをtemplatefileprimarydir属性に指定します。 テンプレートファイルの名前はxxxtemplatefilename属性に指定します。(xxxのところはタスクで異なります)たとえば、gen-entityの場合こんな感じです。 <gen-entity rootpackagename="example" templatefileprimarydir="mydir" entitytemplatefilename="my-entity.ftl" classpathref="classpath" /> テンプレートファイ</gen-entity>…

S2JDBC-Genで生成したJavaファイルの先頭に任意のコピーライトを含めるには?

下のエントリに関連するのでついでに。 <gen-entity rootpackagename="example" templatefileprimarydir="mydir" classpathref="classpath" /> temptemplatefileprimarydirを指定して、そのディレクトリにcopyright.ftlという名前でコピーライトの記述をしておくとファイルの生成時に含まれるようになります。</gen-entity>