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