[Seasar-user:835] Re: S2JDBC :S2-2.0.10のBeanListについて

B isid.co.jp Yasuo Higa higa
2004年 6月 30日 (水) 10:28:29 JST


<[E-MAIL ADDRESS DELETED]> の、
   "[Seasar-user:834] Re: S2JDBC :S2-2.0.10のBeanListについて" において、
   "jazzatny <[E-MAIL ADDRESS DELETED]>"さんは書きました:

ひがです。

> 佐藤です。試してみました。
> 
> カラム名にアンダーバーを含むテーブルを作成
> 
>        CREATE TABLE
> 	EMP_BAR(EMP_NO NUMERIC(4) NOT NULL PRIMARY KEY,
>             E_NAME VARCHAR(10),
>             JOB VARCHAR(9),
>             MGR NUMERIC(4),
>             HIRE_DATE DATE,
>             SAL NUMERIC(7,2),
>             COMM NUMERIC(7,2),
>             DEPT_NO NUMERIC(2))
> 
> データを追加
>       INSERT INTO EMP_BAR
>          VALUES(7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20)
> 
> Employeeクラスに_COLUMN定義を追加
> 
>        public static final String empno_COLUMN = "EMP_NO";
>        public static final String ename_COLUMN = "E_NAME";
>        public static final String hiredate_COLUMN = "HIRE_DATE";
>        public static final String deptno_COLUMN = "DEPT_NO";
> 
> SelectBeanList.diconのSQLを変更
> 
>        SELECT emp_no, e_name, job, mgr, hire_date,
>               sal, comm, dept_no FROM emp_bar
> 
public static final String TABLE = "EMP_BAR";
を追加すると大丈夫だと思います。

> > if (!pt.isPersistent() || !columnNames.contains(pt.getColumnName())) {
> >  continue;
> > }
> でcontinueされてしまっているようです(pt.isPersistent()がfalse)。
> 
テーブル名が実際にないものなので、そのテーブルに含まれるカラムも見つからず、
永続化の対象じゃないとみなされているようです。
でも、SELECTは永続化とは無関係なため、!pt.isPersistent()は
次のバージョンからはずします。
TABLEアノテーションを書いてもらえれば今のバージョンでも多分大丈夫。
---
Yasuo Higa <[E-MAIL ADDRESS DELETED]>
INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.



Seasar-user メーリングリストの案内