[Seasar-user:21644] Re: order by のカラム名が別名に変換されない

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2013年 7月 5日 (金) 04:55:52 JST


小林 (koichik) です.

> actionクラスのコード
> 
>     empItems = jdbcManager.from(Emp.class).where(swh)
>                               .orderBy("EMP_NO")

このコードは scaffold で生成されたコードですか?
それとも馬場さんが書いたコードでしょうか?

もし後者なら、orderBy() で指定するのはカラム名ではなく
エンティティクラスに定義したプロパティ名です。

http://s2container.seasar.org/2.4/ja/s2jdbc_manager_auto.html#ソート順

「orderBy() に書くことのできる条件は、SQLと同じです。 SQLとの違いは、
カラム名の代わりにプロパティ名を書くことです。」


On Fri, 5 Jul 2013 00:38:09 +0900 (JST), hiroaki381 @ mbr.nifty.com wrote:

> お世話になります。馬場と申します。
> 
> 現在、S2JDBCを利用した開発をおこなっておりますが、件名の現象が発生しております
>> 
> ■現象
> DoltengのScaffold機能を利用してSaStruts+S2JDBCでScaffold アプリケーションの生
> 成を行い、
> 以下の処理のSQL自動生成でカラム名が別名に変更されないため
> SQLエラーが発生します。先頭データでは無く、次ページデータ取得時に発生します。
> 
> .orderBy("EMP_NO") を.orderBy("C1_")に変更しますとSQLエラーは発生しません。
> 
> actionクラスのコード
> 
>     empItems = jdbcManager.from(Emp.class).where(swh)
>                               .orderBy("EMP_NO")
>                               .limit(limit).offset(Integer.valueOf(empForm.off
> set))
>                               .getResultList();
> 
> 自動生成のSQL
> 
> select
>   * 
> from
>   ( 
>     select
>       temp_.*
>       , row_number() over(order by EMP_NO) as rownumber_ 
>     from
>       ( 
>         select
>           T1_.EMP_NO as C1_
>           , T1_.EMP_NAME as C2_
>           , T1_.CREATE_DATE as C3_
>           , T1_.CREATE_USER_CD as C4_
>           , T1_.UPDATE_DATE as C5_
>           , T1_.UPDATE_USER_CD as C6_ 
>         from
>           EMP_MST T1_ 
>         where
>           (T1_.EMP_NO like ? )
>       ) as temp_
>   ) as temp2_ 
> where
>   rownumber_ >= 11 
>   and rownumber_ <= 20
> 
> ■環境
> JDK 6
> Tomcat 6
> S2Container 2.4.45
> S2Tiger 2.4.45
> SA Struts 1.0.4 sp9
> Dolteng 0.39.0
> SQL Server 2008 R2 Express
> 
> 以上、よろしくお願いします。
> 
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user


-- 
{
  name: "Koichi Kobayashi",
  mail: "koichik @ improvement.jp",
  blog: "http://d.hatena.ne.jp/koichik/",
  twitter: "@koichik"
}



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