T字形ER図で基本のテーブルを設計しちゃったシステムがあって、いつも使ってるHibernateを適用しづらくなってしまった。
てことで、クラスとテーブルをマッピングするソリューションについて、代替案をいろいろ探してみたんだが、DbUtilsかSpringのJdbcDaoSupportか、といったところで詰まった。
必須機能ではないんだけど、2つ以上のテーブルをjoinした結果を、各々のテーブルオブジェクトの二次元配列として返してくれるのがない。
クラスへのマッピングを諦めてMapで扱うのもいいんだけど、Stringで扱うとリファクタリングきかないし、個人的にはやめておきたいところ。
join結果を1クラスにする方法もあるけど、これだとjoinのパターンごとにわざわざクラスを作成しなきゃいけないのでこれも面倒。
じゃーってことで、自前でマッパを作ろうと思って意気込んでみたものの、OracleのjdbcドライバじゃResultSetMetaData#getTableName(int)でテーブル名が引っ張ってこれないという事実(゚д゚lll)
うーん困ったぞ。
Hibernateのnative queryみたいに、
select {a.*}, {b.*} from table_a a, table_b b where a.fk = b.id
のようなaliasは、SQL単品ではできないものか。
SQL嫌いだからあんまり勉強してなくてわかんないやヽ(´ー`)ノ
ふぅ
0 件のコメント:
コメントを投稿