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