我的项目最初是由 seam-gen 和动作“List”bean 生成的,OfficeViewList 看起来很像第一次生成时的样子。
该 bean 扩展了 EntityQuery。
现在我想订购结果。做这个的最好方式是什么?
我想在我的 EJBQL 中添加某种“order by”类吗?还是我想通过设置选择顺序
这是 seam-gen 生成的代码(我已经更改了 RESTRICTIONS,但除此之外都是一样的):
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 语句中添加了某种“order by”子句?
或者是否有要添加到我的实体 bean 的注释?还是给构造函数?
选择太多,知识不够。
先感谢您。
TDR