В итоге я добавил
setOrderColumn("officeView.officeId");
к конструктору, и это сделало именно то, что я хотел.
Мой проект был первоначально сгенерирован seam-gen и активным компонентом «List», OfficeViewList выглядит так же, как и при первом создании.
Боб расширяет EntityQuery.
Теперь я хочу заказать результаты. Каков наилучший способ сделать это?
Должен ли я добавить какой-то класс «упорядочить по» на мой 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 примерно
выберите * из office_view, где order by office_id
Я думал использовать setOrder или setOrderColumn, как это
public OfficeViewList() {
setEjbql(EJBQL);
setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
setOrderColumn("office_id");
setMaxResults(25);
}
но я не могу понять, как это сделать или подходит ли это. Я не могу найти документацию, которая действительно объясняет, как их использовать.
Или я могу добавить какое-то предложение «order by» к выражению EJBQL?
Или есть аннотация, чтобы добавить к моему объекту bean? или конструктору?
Слишком много вариантов, недостаточно знаний.
Заранее спасибо.
TDR
EntityQuery загружает массив ограничений только в первый раз, тогда он больше не называет ограничений. Поэтому, если вы хотите использовать один и тот же объект EntityQuery и изменить ограничения, используйте свое второе решение, я также использую его. Или инициализируйте другой объект EntityQuery и установите ограничения для разных.