- - PR -
J2EEで既存DBテーブルを使う方法は?
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2002-11-03 19:31
j2sdkee1.3.1付属のdeploytoolを使いEJBをdeployしているのですが、
なかなか思う様にマスターできません。ご存知であればご教授下さい。 ・付属のdeploytoolでは既設のDBテーブルを利用できないのでしょうか? つまりdeploytoolのDBテーブル自動生成はできるのですが、既設のテー ブルはEJBにassignできないのでしょうか?インターネットを調べてみる とJBossやWebLogicなどでは可能であるとの内容を見つけましたが・・ ・自動生成したテーブルはSQLを投げる時ダブルクオーテーションでテーブ ル名を囲わないと「テーブルが存在しません」といった結果が返されます。 RDBMのシステムテーブルでテーブル名を確認してもダブルクオーテーショ ンは付いてません。これはどの様なカラクリなのでしょうか?RDBMの世界 の話しでしょうか・・? どなたかご教授下さいm(__)m |
|
投稿日時: 2002-11-04 12:22
一つ目の質問はわかりませんが、
ダブルクオーテーションの話は、テーブル名の大文字小文字の 区別をする、しないといった話じゃないでしょうか。 以前似たような現象を見たことがあります。 あるパッケージソフトが自動で作成したテーブルに対して 普通にSELECTするテーブルが存在しないと言われてしまう。 インストールスクリプトをよくみたら、CREATE TABLE文のテーブル名 にダブルクォーテーションがついていて、SELECT時にも同様に ダブルクォーテーションをつけて大文字小文字を区別することを DBMSに知らせないとないとだめというものです。 この辺はDBMSに依存する話かもしれません(サイベースはもともと 大文字小文字を区別するようになっていた気がする)ので、 DBMS名がわかるともうすこし何かわかるかもしれません。 |
|
投稿日時: 2002-11-04 14:09
ご返答ありがとうございます。
2つ目の件ですが、 確かにEJBの自動生成SQLの中のCREATE TABLEではテーブル名を ダブルクォーテーションで囲ってあります。DBMS側の内部で何か が起こっているという事ですよね?やはり決まりごととして理解 するのが適当でしょうか? ちなみにDBMSはoracleでテストしてます。システムテーブル、 つまりuser_tablesテーブルのテーブル定義を見ても、特にその ような(ダブルクォーテーションを意識するような)部分は無く、 普通にSQLPLUSでCREATEしたテーブルと全く変わりません。ちな みに私はいつも大文字小文字を意識しないでSQLを打っていたので すが、もしかしてダブルクォーテーションを付けるとoracleでも 大文字小文字を意識するのでしょうか・・? p.s.1つ目の件は上手く伝わらなかったみたいですね・・ EntityBean EJBの開発方法としてボトムアップで開発する際に DBMS側でデータベースを先に設計して構築し、その後でEJBを開発 という場合を想定しています。その際に先に開発したDBMS上のDB に対してEJBをassignできないかな?という質問です。なかなか 上手く説明できなくて申し訳ございません。 |
|
投稿日時: 2002-11-04 22:25
そう思います。
http://rina.jpn.ph/~rance/om/oracle/hosoku06.html 上のサイトの「命名規則の例外」のところに少し言及されていました。 |
|
投稿日時: 2002-11-05 10:40
その様な規則があったとは・・
1つ目の件も同様に解決するかもしれません。 試してみます。 どうもありがとうございましたm(__)m |
|
投稿日時: 2002-11-07 13:23
こんにちは。
j2sdkee1.3.1ではなくJRun4での場合ですが、 最近JRun4用のServicePack1aが出ました。 それまでは、CMP2.0のEntityBeanでは、既存テーブルへのORマッピングはできず、 CMP1.1やBMP、SessionBeanなどを使用する必要がありました。 今回のSPで既存テーブルへのアクセスが可能になっています。 アプリケーションサーバによっては上記のようなことがあるみたいです。 _________________ |
1
