ActiveObjects

本腰入れてActiveObjects(その3) ActiveObjectsを使ってEntityを作成する。それと@NotNullとか@Defaultとか、それと@Generator

今回は「ActiveObjectsを使ってEntityを作成するには」と言う事で前回先に取り上げておけば、と思ったEntityManager#create(RawEntity,DBParam...)辺りをば。 と言っても、こいつはJavaDoc見ればワカンジャンっていうくらいのものですね。DBに実際にINSERT文…

本腰入れてActiveObjects(その2) @Preloardと@Implementationそしてなぜだか@Ignore

メリクリですね。メリクリ。あんまりそんな気分でもないのだけれども。 前回PreloadアノテーションとImplementationアノテーションについて解説するぜ!って言ってみました。が、たぶんActiveObjects入門とか、「使おうぜ」という本筋からすると、Preloadアノ…

本腰入れてActiveObjects (その1) EntityManager#migrate()

java-ja忘年会に急遽行ってみたらid:yuripopのサンタコスにヤラレタ。なんだかリア・ディゾンぽかったんだけど、id:yuripopってそういう方でしたっけ?ともかく、普通にかわいくてビビった。id:t_yano氏が終始ドキドキしていたのも頷ける。 そういえばActive…

DBにマッピングするオブジェクトの継承関係

ActiveObjectsのクセがだいぶ分かってきた。 Table Inheritance with ActiveObjects - Code Commitという記事を読んで、「へぇ。継承関係を持つオブジェクトも永続化できるのか。」と思って試してみると、しばらく動かず、うんうんうなっていた。 原因は親ク…

なるほど。@Ignoreか。

なるほど。setterやgetterメソッドに@IgnoreをつけるとDBのスキーマに変換しない対象になるのか。それで代わりに実装の方でデータを保持すれば良いと。気をつけないといけないのは、DBからデータを取り直しても実装の方のフィールドの値が初期化されるわけで…

Transientと言ったら

シリアライズしてもそのパラメータはシリアライズの対象外という概念が頭にあるんです。XStreamとかでオブジェクトをXMLに変換する時にtransientをつけておくとそのフィールドを外して永続化してくれます。しかしActiveObjectsの@Transientはちょと違う。DB…

ActiveObjectsの変態的な考え方にまたまた驚愕

正式リリース前のせいか、まともなドキュメントは見当たらないActiveObjects。でも面白い機能が多いせいか、いろんなところで取り上げられているみたいですね。その中でも参考になったのがJavalobbyの記事。結構後ろの「Implementing the Active Record Patt…

今更ながらGenericsのすごさに驚嘆しているわけで。

ActiveObjectsの中にはトランザクションを保証するためのTransactionクラスがある。Transactionクラスのシグネチャはこんな感じ。 public abstract class Transaction<T>; public T execute() throws SQLException; protected abstract T run() throws SQLExcep</t>…

ActiveObjectsでSQLログを出力する

今日は最近はまり始めたActiveObjectsのTipsです。まずSQLログを出力するにはどうするのか、ですが、EntityManagerのJavaDocに書かれてました。 EntityManager manager = new EntityManager(provider); Logger.getLogger("net.java.ao").setLevel(Level.FINE…

O/RマッパーActiveObjects

僕はO/Rマッパーについていくつも調べたことがありません。が、一時期Hibernateを使ってみようとしたことがあります。2年くらい前に「Hibernate in Action」が出て、それを元に使ってみようと頑張ってみましたが、モノの2週間くらいで挫折しました。 当時は3…