[Seasar-user:10270] [DBFlute] 識別子が長すぎるを解決したい
Junichi Kato
[E-MAIL ADDRESS DELETED]
2007年 9月 3日 (月) 13:49:24 JST
久保さん,
加藤です.
On Mon, 03 Sep 2007 13:06:51 +0900
kubo <[E-MAIL ADDRESS DELETED]> wrote:
> 久保です。
>
> > > <A>
> > > USER_ACCOUNT_MASTERの自動生成されたEntityにて、
> > > S2Daoの「_RELNO」・「_RELKEY」のアノテーションが、
> > > 幾つ存在するか、RELNOの値は何か、を確認して頂けますでしょうか?
> >
> > /** RELNO of foreign table for s2dao. */
> > public static final int userAccountMasterByUserAccountId_RELNO = 0;
> >
> > /** RELKEYS of foreign table for s2dao. */
> > public static final String userAccountMasterByUserAccountId_RELKEYS = "USER_ACCOUNT_ID:USER_ACCOUNT_ID";
> >
> >
> > /** RELNO of foreign table for s2dao. */
> > public static final int userAccountMasterByCreaterId_RELNO = 1;
> >
> > /** RELKEYS of foreign table for s2dao. */
> > public static final String userAccountMasterByCreaterId_RELKEYS = "CREATER_ID:USER_ACCOUNT_ID";
> >
> >
> > /** RELNO of foreign table for s2dao. */
> > public static final int userAccountMasterByUpdaterId_RELNO = 2;
> >
> > /** RELKEYS of foreign table for s2dao. */
> > public static final String userAccountMasterByUpdaterId_RELKEYS = "UPDATER_ID:USER_ACCOUNT_ID";
>
>
> 「userAccountMasterByUserAccountId」は、
>
> 「USER_ACCOUNT_MASTERのUSER_ACCOUNT_ID」
> ↓
> 「USER_ACCOUNT_MASTER以外のどこかのテーブルのUSER_ACCOUNT_ID」
>
> でしょうか?
どこにも関連はないはずなんですが,,,作られていますね.
>
> ./schema/project-schema-[project].xmlを見ると
> JDBCでリバースした情報が見れるのですが、USER_ACCOUNT_MASTERの
> FK情報がどのように定義されているか見せて頂けませんでしょうか?
このようになっております.
<table name="USER_ACCOUNT_MASTER" schema="EXAMPLE" type="TABLE">
<column dbType="NUMBER" javaType="java.math.BigDecimal"
name="USER_ACCOUNT_ID" primaryKey="true" required="true"
size="20" type="DECIMAL"/>
<column dbType="VARCHAR2" javaType="String" name="USER_CODE"
required="true" size="255" type="VARCHAR"/>
<column dbType="VARCHAR2" javaType="String"
name="USER_PRIVATE_CODE" required="true" size="255" type="VARCHAR"/>
<column dbType="CHAR" default="'N' " javaType="String"
name="TEST_TYPE" required="true" size="1" type="CHAR"/>
<column dbType="NUMBER" javaType="java.math.BigDecimal"
name="CREATER_ID" required="true" size="20" type="DECIMAL"/>
<column dbType="NUMBER" javaType="java.math.BigDecimal"
name="UPDATER_ID" required="true" size="20" type="DECIMAL"/>
<column dbType="DATE" javaType="java.util.Date"
name="CREATE_DATE" required="true" type="DATE"/>
<column dbType="DATE" javaType="java.util.Date"
name="UPDATE_DATE" required="true" type="DATE"/>
<foreign-key foreignTable="USER_ACCOUNT_MASTER" name="FK_USER_ACCOUNT_MASTER1">
<reference foreign="USER_ACCOUNT_ID" local="CREATER_ID"/>
</foreign-key>
<foreign-key foreignTable="USER_ACCOUNT_MASTER" name="FK_USER_ACCOUNT_MASTER2">
<reference foreign="USER_ACCOUNT_ID" local="UPDATER_ID"/>
</foreign-key>
<unique name="UQ_USER_ACCOUNT_MASTER1">
<unique-column name="USER_PRIVATE_CODE" position="1"/>
</unique>
<unique name="UQ_USER_ACCOUNT_MASTER2">
<unique-column name="USER_CODE" position="1"/>
</unique>
</table>
>
>
> > > <B>
> > > build-[project].propertiesにて
> > > 「torque.isAvailableChildNoAnnotationGenerating」
> > > という設定をtrueにしていませんでしょうか?
> >
> > trueになっていました.
> > defaultはfalseでしたね.ちょっと指定した記憶がないのですが,これはfalse
> > のほうがよいでしょうか?
>
> そうですね、こちらfalseでお願いします。
> 将来の仕様のための設定で現状は利用しません。
> これをfalseによって解決するかはちょっと微妙なのですが...
> (すいません、FullPropertiesのサンプルがtrueになってしまっていたようです)
falseしたら,問題が解決されました^^;
今度は,Oracleの30文字以上の識別子が長すぎるという問題が浮上しました.
UserAccountConfigByUserAccountIdAsOneで36文字になるようで,,,
これを30文字以内にするにはテーブル名やカラム名を短くするしかないですかね...
短くしても,Java側はそのままにできますかね?COLUMNアノテーションで.
アイデアがあれば教えてください.
───────────────────────────────
株式会社 グランテック
代表取締役社長
加藤 潤一 Junichi Kato
〒154-0012
東京都世田谷区駒沢2-16-1 サンドー駒沢ビル4F
TEL 050-5538-2383 FAX 03-3487-7211
HP : http://www.grandtech.jp/
BLOG : http://d.hatena.ne.jp/j5ik2o/
E-MAIL : [E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内