Как я могу заказать запрос EntityQuery в приложении для шва?

Мой проект был первоначально сгенерирован 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

seam,entity,order,

0

Ответов: 2


3 принят

В итоге я добавил

setOrderColumn("officeView.officeId");

к конструктору, и это сделало именно то, что я хотел.


0

EntityQuery загружает массив ограничений только в первый раз, тогда он больше не называет ограничений. Поэтому, если вы хотите использовать один и тот же объект EntityQuery и изменить ограничения, используйте свое второе решение, я также использую его. Или инициализируйте другой объект EntityQuery и установите ограничения для разных.

Шов, сущность, порядок,
Похожие вопросы
Яндекс.Метрика