私のプロジェクトは元々seam-genによって生成され、アクション「List」BeanであるOfficeViewListは、最初に生成されたときとほとんど同じように見えます。
BeanはEntityQueryを拡張します。
結果を注文したいと思います。これを行うための最良の方法は何ですか?
ある種の「orderby」クラスをEJBQLに追加しますか?または、次の方法で選択順序を設定しますか?
seam-genが生成したコードは次のとおりです(制限を変更しましたが、それ以外は同じです)。
private static final String EJBQL =
"select officeView from OfficeView officeView";
private static final String[] RESTRICTIONS = {
"lower(officeView.addr1) like concat(lower(#{officeViewList.officeView.addr1}),'%')",
"lower(officeView.buildingId) like
concat(lower({officeViewList.officeView.buildingId}),'%')",
"lower(officeView.circuitId) like
concat('%',lower({officeViewList.officeView.circuitId}),'%')",};
public OfficeViewList() {
setEjbql(EJBQL);
setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
setMaxResults(25);
}
SQLの翻訳は大まかに
select * from office_view where order by office_id
私はこのようにsetOrderまたはsetOrderColumnを使用することを考えていました
public OfficeViewList() {
setEjbql(EJBQL);
setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
setOrderColumn("office_id");
setMaxResults(25);
}
しかし、私はそれを行う方法や、これらのいずれかが適切であるかどうかを完全に理解することはできません。これらの使用方法を実際に説明しているドキュメントが見つかりません。
または、EJBQLステートメントによって何らかの「orderby」句を追加しますか?
または、エンティティBeanに追加するアノテーションはありますか?またはコンストラクターに?
選択肢が多すぎて、知識が足りません。
前もって感謝します。
TDR