[tuigwaa-user:292] Re: Oracle のテーブルの一部のカラムを Tuigwaa が取り込んでくれない。
Masaki Kasai
masakas @ ybb.ne.jp
2007年 2月 7日 (水) 13:38:53 JST
河西です。
> 外部キーは通常のカラムとは読み込み方式が異なる為
> 読み込まれています。
> ただし、通常のカラムは河西さんに実行して頂いたクラスと
同じロジック
> で、返されてくるカラムの Java のクラスと Tuigwaa
> の内部
> 表現をマップしているのですが、java.math.BigDecimal
> に
> 対応する内部表現が存在しないため読み込めない状態と
> なっています。
>
> この点については影響範囲が大きいのと、外部読み取り機能
の
> 複数データベースの対応については検討事項が多い為、しば
し
> 時間を頂けますと助かります。
なるほど了解しました。
手元で、EntityUtilに oracle.sql.TIMESTAMPと、
java.math.BigDecimal を入れてみたら、取り込み
は出来たんですけど、フォームやテーブル定義の
編集に反映されなかったので、そんな単純なこと
ではないんですね。
Oracleを使うことが多いので、Oracleを外部読取で、
使えるようになると、非常にうれしいです。
> 代替案を出せずに申し訳ないのですが、
> 宜しくお願い致します。
いえいえ、こちらこそ対応して頂き
ありがとうございました。
--- Takashi Someda <takashi.someda @ gmail.com> wrote:
> 染田です。
>
> 返信遅れて申し訳ありません。
> 以下 JIRA に登録しました。
>
> https://www.seasar.org/issues/browse/TUIGWAA-169
>
> > という気がしますが、HOGE_SUM_ID が取り込まれない
> > のはなぜなんでしょう。。。
>
> 外部キーは通常のカラムとは読み込み方式が異なる為
> 読み込まれています。
> ただし、通常のカラムは河西さんに実行して頂いたクラスと
同じロジック
> で、返されてくるカラムの Java のクラスと Tuigwaa
> の内部
> 表現をマップしているのですが、java.math.BigDecimal
> に
> 対応する内部表現が存在しないため読み込めない状態と
> なっています。
>
> この点については影響範囲が大きいのと、外部読み取り機能
の
> 複数データベースの対応については検討事項が多い為、しば
し
> 時間を頂けますと助かります。
>
> 代替案を出せずに申し訳ないのですが、
> 宜しくお願い致します。
>
> Masaki Kasai wrote:
> > 河西です。
> >
> > 添付のColumnTypeExtracter.javaを実行したところ、
> > 以下のとおりの結果になりました。
> >
> > --------------
> > RES_HIST_ID : java.math.BigDecimal
> > USER_ID : java.math.BigDecimal
> > HOGE_SUM_ID : java.math.BigDecimal
> > HOGE_DATETIME : oracle.sql.TIMESTAMP
> > HOGE_STATUS : java.lang.String
> > HOGE_USER : java.lang.String
> > RES_ACTION : java.lang.String
> > --------------
> >
> > HOGE_DATETIMEが、oracle.sql.TIMESTAMP なので、
> > 取り込まれないんだろうなぁ。
> > という気がしますが、HOGE_SUM_ID が取り込まれない
> > のはなぜなんでしょう。。。
> >
> > --
> > Masaki Kasai
> >
> > --- SOMEDA Takashi <someda @ 4dd.co.jp> wrote:
> >
> >> 染田です。
> >>
> >> 例えば ID が Long
> >> 型でないテーブルは読み込まれないなどの
> >> 外部DBの読み込みには幾つか制約があります。
> >> また、読み込んだテーブルのメタデータから Tuigwaa
> の
> >> 内部表現にマッピングしているのですが、その際に
> >>
> カラムの型によっては、内部表現のマッピングが生成されな
> > い
> >> ものについては読み込まれません。
> >>
> >> 手元に Oracle 環境が無いので恐縮ではありますが、
> >> 添付のファイルの JDBC_DRIVER
> から、TARGET_TABLE_NAME
> >>
> をお手元の環境に合わせて書き換えた後、コンパイルして
> >> 結果をお知らせ頂けますでしょうか。
> >>
> >> よろしくお願い致します。
> >>
> >> Masaki Kasai wrote:
> >>> 河西と申します。
> >>>
> >>> 既存のOracle
> 10gのテーブル群を外部DBとして指定し、
> >>> テーブルを取り込んだのですが、
> >>> 一部のカラムをTuigwaaが取り込んでくれません。
> >>>
> >>> 例えば、以下のようなテーブルだと、
> >>> HOGE_SUM_ID、HOGE_DATETIME のカラムが、
> >>> Tuigwaaに取り込まれません。
> >>> ----------------------------------
> >>> CREATE TABLE T_RES_HIST
> >>> (
> >>> RES_HIST_ID NUMBER(10) PRIMARY KEY not null,
> >>> USER_ID NUMBER(10) not null,
> >>> HOGE_SUM_ID NUMBER(10) not null,
> >>> HOGE_DATETIME TIMESTAMP(6) not null,
> >>> HOGE_STATUS VARCHAR2(16) not null,
> >>> HOGE_USER VARCHAR2(20) not null,
> >>> RES_ACTION VARCHAR2(120) not null
> >>> );
> >>>
> >>> ALTER TABLE T_RES_HIST
> >>> ADD CONSTRAINT REF_USER491
> >>> FOREIGN KEY (USER_ID)
> >>> REFERENCES T_USER(USER_ID);
> >>> CREATE INDEX REF34491 ON T_RES_HIST(USER_ID);
> >>> ----------------------------------
> >>>
> >>>
> >>
> 他にもカラムが取り込まれないテーブルがあるのですが。
> >>
> NUMBER型、TIMESTAMP型のカラムがり込まれないように思い
> > ま
> >>> す。
> >>>
> >>
> ただ、NUMBER型であっても、外部キーを指定しているカラム
> > は
> >>> 取り込まれています。
> >>>
> >>>
> >
>
使用しているバージョンは、tuigwaa1.0.3(tuigwaa1.0.3_with_tomcat.zip)
> >>> です。
> >>> また、外部DBで使用するために、tuigwaa.properties
> >> に、
> >>> 以下を追加しています。
> >>> hibernate.oracle.jdbc.driver.OracleDriver=
> >>> org.hibernate.dialect.Oracle9Dialect
> >>>
> >>> 以上です。
> >>> よろしくお願いします。
> >>>
> >>> --
> >>> 河西
> >>>
> >>> ---
> >>> Masaki Kasai
> >>> masakas @ yahoo.co.jp
> >>> masakas @ gmail.com
> >>> _______________________________________________
> >>> tuigwaa-user mailing list
> >>> tuigwaa-user @ ml.seasar.org
> >>>
> >>
> https://ml.seasar.org/mailman/listinfo/tuigwaa-user
> >>>
> >>>
> >>
> >> --
> >> SOMEDA Takashi
> >> Four-Dimensional Data, Inc
> >> email : someda @ 4dd.co.jp
> >> www : http://www.4dd.co.jp/
> >> : http://techscore.com/
> >> phone : 050-5527-7945
> >>
> >>> import java.sql.Connection;
> >> import java.sql.DriverManager;
> >> import java.sql.ResultSet;
> >> import java.sql.ResultSetMetaData;
> >> import java.sql.Statement;
> >> import java.util.Properties;
> >>
> >> public class ColumnTypeExtracter {
> >>
> >> private static final String SQL_PREFIX = "SELECT
> *
> >> FROM ";
> >>
> >> private static final String JDBC_DRIVER =
> >> "org.postgresql.Driver";
> >> private static final String JDBC_URL =
> >> "jdbc:postgresql://localhost:5432/tuigwaa";
> >> private static final String JDBC_USER =
> "tuigwaa";
> >> private static final String JDBC_PASSWORD =
> >> "tuigwaa";
> >> private static final String TARGET_TABLE_NAME =
> >> "buriuser";
> >>
> >> public static void main(String[] args) throws
> >> Exception{
> >>
> >> String sql = buildSQL(TARGET_TABLE_NAME);
> >> Connection con = getConnection();
> >>
> >> Statement stmt = con.createStatement();
> >> ResultSet rs = stmt.executeQuery(sql);
> >> ResultSetMetaData metaData = rs.getMetaData();
> >>
> >> int num = metaData.getColumnCount();
> >> for (int i = 1; i <= num; i++) {
> >> String columnName = metaData.getColumnName(i);
> >> String columnClassName =
> >> metaData.getColumnClassName(i);
> >> System.out.println(columnName + " : " +
> >> columnClassName);
> >> }
> >> }
> >>
> >> private static Connection getConnection() throws
> >> Exception{
> >> Class.forName(JDBC_DRIVER);
> >> Properties props = new Properties();
> >> props.setProperty("user",JDBC_USER);
> >> props.setProperty("password",JDBC_PASSWORD);
> >> Connection con =
> >> DriverManager.getConnection(JDBC_URL,props);
> >> return con;
> >> }
> >>
> >> private static String buildSQL(String
> tableName){
> >> StringBuffer buf = new StringBuffer();
> >> buf.append(SQL_PREFIX);
> >> buf.append(tableName);
> >> buf.append(";");
> >> return buf.toString();
> >> }
> >>
> >> }
> >>> _______________________________________________
> >> tuigwaa-user mailing list
> >> tuigwaa-user @ ml.seasar.org
> >>
> https://ml.seasar.org/mailman/listinfo/tuigwaa-user
> >>
> >
> > _______________________________________________
> > tuigwaa-user mailing list
> > tuigwaa-user @ ml.seasar.org
> >
> https://ml.seasar.org/mailman/listinfo/tuigwaa-user
> >
>
>
> --
> SOMEDA Takashi (takashi.someda @ gmail.com)
> http://tuigwaa.sandbox.seasar.org/
> _______________________________________________
> tuigwaa-user mailing list
> tuigwaa-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/tuigwaa-user
>
tuigwaa-user メーリングリストの案内