- PR -

HIBERNATEについて

投稿者投稿内容
taku
会議室デビュー日: 2006/10/16
投稿数: 8
投稿日時: 2006-10-16 02:06
プログラムの中でDBにtableを作成してアクセスしたいのでが、

HIBERNATEで前もってマッピングやbeanを作成しないでアクセスできるように
する方法はないでしょうか?。
宜しくお願いします。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2006-10-16 11:18
ぴったりの記事をば

http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn03/eclipseplgn03_3.html

キーワードは「middlegen」です。
taku
会議室デビュー日: 2006/10/16
投稿数: 8
投稿日時: 2006-10-16 13:36
的はずれだったらすみません、
これってantをつかってだと思うんですが、プログラムからantをつかってビルドし直すということでしょか?
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-10-16 14:40
プログラムで動的にTableを作成したいが、
その動的に作成したTableにO/Rマッピングを適用したい
ということでしょうか?

O/RマッピングのOはオブジェクトのOで、
RはリレーショナルデータベースのRだったかと思いますが、
要するにオブジェクト指向の世界のオブジェクトというものと
リレーショナルデータベース内のデータをマッピングするということですね。

それを踏まえたうえで、マッピングする先のオブジェクト不在のまま
マッピングをしたい、と仰るわけですね?
taku
会議室デビュー日: 2006/10/16
投稿数: 8
投稿日時: 2006-10-17 02:52
nagiseさん>
まさにその通りです。
通常のSQL文なら動的にtableを作成しても
そのtableに合うように動的にSQL文を作成すればアクセス出来るのですが、
hibernateの場合マッピングファイルとbeanが必要で、
マッピングファイルはプログラムから更新できそうですが、beanを作成する良い方法が見つからないのです。

hibernateを使わなければ、というご意見もあるかと思いますがhibernateでのこのような使い方ができるのかが調べたいのです。

hibernateはこのような使い方はできない、又はこのような使い方にはこの方法がある、などあれば教えて頂きたいのです。
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2006-10-17 06:40
SessionにgetConnectionというメソッドがあったと思います。
それを使えばOKでは。

HQLを使ってとかは無理じゃないかと思います。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-10-17 08:59
それはもはやO/Rマッピングではないような気が…

実装の仕方としてはjava.util.Mapの実装に
カラム名をキーに、データをvalueにして保存するような手法で
型不明のまま扱うことはできますが。

O/RマッピングはDBからオブジェクトにデータを移す作業を
やってくれるわけですが、できあがるべき型がないのでは
移しようがないと思うわけですよ。
Mapにぶち込んでくれる実装とかあるのでしょうかね?
寡聞に聞いたことがありません。
taku
会議室デビュー日: 2006/10/16
投稿数: 8
投稿日時: 2006-10-17 13:11
Kazukiさん>SessionにgetConnectionですか、まだ調べて無かった部分です。ありがとうございます。調べてみます!。

nagiseさん>
>O/RマッピングはDBからオブジェクトにデータを移す作業を
>やってくれるわけですが、できあがるべき型がないのでは
>移しようがないと思うわけですよ。

そうなんですよね、そうなのですが、「できあがるべき型」がハッキリと決まっていないといけないのをたとえば、「汎用的な型」が実はあってこの型にいれることが出来るみたいな事が出来ないのかなと。

たとえばプログラムの中で新たにtableを作成しました。
マッピングファイルに無いtableなので、マッピングファイルにないtableにアクセスする
メソッドが実はあって、それを呼んで「汎用的な型」に値が格納されて返ってくる。

イメージだとこのような感じの事が出来ないのかなぁと思いまして。
良きアドバイスをお願いします。
ちなみにプログラムの経験が浅いもので意味不明の事を書くかもしれません、よろしかったらご指摘の方もよろしくお願いします。



スキルアップ/キャリアアップ(JOB@IT)