[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 メーリングリストの案内