powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / ADF: setQuery - не работает
5 сообщений из 5, страница 1 из 1
ADF: setQuery - не работает
    #38948694
student42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Появилась необходимость в ViewObject подменить запрос еа лету.

На эту тему нагуглил данную статью: ADF 11g : Change a Viewobjects’ Query on the Fly

итак:

До перехода на страницу в VO поменяю запрос. Но когда страница открывается
выполнется старый запрос (тот который указать был указан в нашем VO)

Если кто-то решал подобную задачу, поделитесь опытом.
Заранее благодарю.
...
Рейтинг: 0 / 0
ADF: setQuery - не работает
    #38948740
MOHAX777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
покажите кусок, который меняет запрос. Откуда и когда вы его дёргаете.
...
Рейтинг: 0 / 0
ADF: setQuery - не работает
    #38948855
student42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MOHAX777,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
    @PostConstruct
    public void initBean() {
    ...
    setSQLCustom();
    ...
    }

    public static void setSQLCustom(){
        
        String sqlText = getTextQuery;//получаем текст запроса

        BindingContext bindingctx=BindingContext.getCurrent();  
        BindingContainer binding=bindingctx.getCurrentBindingsEntry();  
        DCBindingContainer bindingsImpl = (DCBindingContainer) binding;  
        DCIteratorBinding dciter = bindingsImpl.findIteratorBinding("RView1Iterator");  
        RCustomViewImpl vo =(RCustomViewImpl ) dciter.getViewObject(); 
        
        vo.clearCache();
        vo.setWhereClauseParams(null);
        vo.setWhereClause(null);
        vo.setFullSqlMode(vo.FULLSQL_MODE_AUGMENTATION);
        vo.setQuery(sqlText);  
                
    }  
...
Рейтинг: 0 / 0
ADF: setQuery - не работает
    #38948926
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
student42,

Чтобы поменять query в viewobject надо (куча танцов с бубном)чтоб он был

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
1. vo.setFullSqlMode(ViewObjectImpl.FULLSQL_MODE_AUGMENTATION); 
2.Перед сменой его надо reset

    protected void resetviewobject(ViewObjectImpl vo){
            vo.reset();
            vo.resetExecuted();
            vo.resetSelectedAttributeDefs();
            vo.clearCache();
             vo.setWhereClause(null);
            vo.setWhereClauseParams(null);
            vo.getVariableManager().clearVariables();
        }
3.Потом назначить новый sql НО важно,чтобы поля сохранились.

типа 

select id,price,summa,name from table

меняем на(структура полей сохранена и их порядок)

select null id,max(price) price,sum(quantity) summa,name from table grpup by name

4.vo.setQuery(newquery)
vo.executeEmptyrowset();
...
Рейтинг: 0 / 0
ADF: setQuery - не работает
    #38949342
student42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
irbis_al,
Спасибо все получилось!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / ADF: setQuery - не работает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]