[tuigwaa-user:288] Re: Oracle のテーブルの一部のカラムを Tuigwaa が取り込んでくれない。
Masaki Kasai
masakas @ ybb.ne.jp
2007年 2月 5日 (月) 13:44:06 JST
河西です。
添付の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 メーリングリストの案内