2008-01-01から1年間の記事一覧

かんちがい

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

HudsonでS2JDBCの結合(統合)テストを自動化

S2JDBCでは、次のデータベースを使ったテストを行っています。 Oracle Database DB2 PostgreSQL MySQL H2 HSQDB Derby これまでは手動で動作確認していましたが、Hudsonで自動テストができるようになりました。ちょっとずつテストコードを作ってきたことが報…

Gavin KingによるJPAのCriteriaをタイプセーフにしようぜというアイデア

JPA

http://relation.to/Bloggers/ATypesafeCriteriaQueryAPIForJPAjavax.jpa.metamodel.Entity とか javax.jpa.metamodel.Attribute といったメタモデルのクラスをサポートして、Criteriaをタイプセーフに記述できるようにするのはどうか、メタモデルのコードは…

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…

Sun Tech Daysにいってきた

いくつか内容をまとめ。 GlassFish and the Future of Java EE 当然マシンにもよるがGlassFish v3はそこそこのスペックなら1秒で起動するらしい。 それくらい速ければ、たしかに便利だと思う。アプリケーションからGlassFishを起動できるというEmbeddable Gl…

@ReferentialConstraintで参照動作の指定

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

S2JDBCのwhereメソッドのin条件にListを

JavaEE勉強会の帰り道、S2JDBCのwhereメソッドでin条件に配列ではなくListを渡せるようにしてほしいという意見を聞きました。 「対応しているはずでは?」と答えてしまいましたが、SimpleWhre、Condition、Operationsのいずれでも対応していないですね。現状…

Java Persistence 2.0 のスペックリード Linda による Criteria API の解説

JPA

JPQLとCriteriaを並べて解説してくれています。仕様書を読んだ人には新しい発見はないかも。http://blogs.sun.com/ldemichiel/entry/java_persistence_2_0_public1

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

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

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

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

JPA2.0のCriteria API

JPA

小林さんのコメントで知りましたが、JPA2.0のPublic Reviewが出ています。 PDFのダウンロードはこちら。http://jcp.org/aboutJava/communityprocess/pr/jsr317/index.htmlPublic ReviewのメインはCriteria APIです。p.192から抜粋するとCriteriaのAPIの利用…

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ターゲットを起動し…

MySQL ユーザコンファレンス 2008に行ってきた

にぎわっていました。 MySQL 5.1、MySQL Cluster、パフォーマンスチューニング、他のDBからMySQLへの移行事例を扱ったセッションが人気だったように思います。これから使うというよりすでに使っている人たちが多かったのかもしれないですね。いくつか面白か…

LINQ to SQL と LINQ to Entities のロードマップ

.NET Framework 3.5 SP1では、LINQを使ったデータベースアクセスの手法が2つ(LINQ to SQLとLINQ to Entities)存在していて、どっちを使うべきか迷いどころだったわけですが、MSの方針が明確になったみたい。Update on LINQ to SQL and LINQ to Entities Ro…

S2Dao 1.0.49 リリース

リリースしました。 ダウンロードはこちらから。 http://s2dao.seasar.org/ja/ 1.0.48からの変更点はこちらを参照ください。 http://www.seasar.org/wiki/index.php?ChangeLog%2FS2DAO#lfb4162f

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…

SeasarカンファレンスでS2JDBC-Genを紹介しました。

関係者の方、参加された方、おつかれさまでした。当日の資料は以下のサイトでダウンロードできます。デモが中心だったためページ数は少ないですが、ぜひご覧ください。 http://event.seasarfoundation.org/sc2008autumn/Session#a1会場で受けた質問やブログ…

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

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