2009-06-10 2 views
0

Мой проект был первоначально сгенерирован seam-gen и активным компонентом «List», OfficeViewList выглядит так же, как и при первом создании.Как я могу заказать запрос EntityQuery в приложении для шва?

Боб расширяет EntityQuery.

Сейчас я хочу заказать результаты. Каков наилучший способ сделать это?

Нужно ли добавить к моему EJBQL какой-то класс «по порядку»? Или же я хочу, чтобы установить выберите заказ через

Вот код, который шов поколения генерироваться (я изменил ОГРАНИЧЕНИЙ, но в остальном это тот же самый):

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 где заказ по office_id

Я думал использовать SetOrder или setOrderColumn, как этот

public OfficeViewList() { 
    setEjbql(EJBQL); 
    setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS)); 
    setOrderColumn("office_id"); 
    setMaxResults(25); 
} 

но я не могу понять, как это сделать или подходит ли это. Я не могу найти документацию, которая действительно объясняет, как их использовать.

Или я могу добавить какое-то предложение «заказать по» с помощью инструкции EJBQL?

Или есть аннотация, добавляемая в мой объект bean? или конструктору?

Слишком много вариантов, недостаточно знаний.

Заранее спасибо.

TDR

+0

опечатка в первой строке. он не генерировался компонентом «Список» действия, но этот компонент был создан шеменом вместе со всем остальным. TDR – 2009-06-10 18:30:58

ответ

3

я в конечном итоге добавив

setOrderColumn("officeView.officeId"); 

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

0

EntityQuery загрузить массив со ОГРАНИЧЕНИЕМ только в первый раз, то он не вызывает ограничений больше. Итак, если вы хотите использовать один и тот же объект EntityQuery и изменить ограничения, используйте свое второе решение, я также использую его. Или инициализируйте другой объект EntityQuery и установите ограничения для разных.

Смежные вопросы