Как заставить фасад сеанса обновлять свои данные (Java EE) - PullRequest
0 голосов
/ 01 апреля 2019

В настоящее время я пишу заявку на мою «Épreuve synthèse de program» (Последняя большая школьная работа в Квебеке).

У меня есть окно, в котором, когда я нажимаю кнопку, открывается другая форма со списком объектов из моей базы данных, поэтому я могу выбрать один и вернуть его в предыдущие окна.Я хочу показать только объект из моей таблицы Jeu , который не имеет отношения к таблице Solde .Он работает при первом открытии окна, но если я внесу какие-либо изменения, например добавлю отношение к одной из строк Jeu , список не обновится, когда я снова открою окно и вызову фасад сеансаmethod findAll () Java EE.

Это две таблицы, на которые я ссылаюсь

Здесь я открываю окно (параметр fинтерфейс для получения экземпляра фасада):

DlgInventaire dlg = new DlgInventaire(null, true, f, "Sélection");
dlg.setOk(false);
this.setVisible(false);

Вот мой код для окон списка объектов:

private List<Jeu> _listeJeux;
private JeuFacadeRemote _facadeJeu;

public DlgInventaire(java.awt.Frame parent, boolean modal, FournisseurServices f, String mode)
    {
        super(parent, modal);

        //Here I get the instance of the session facade
        _facadeJeu = _f.obtenirFacadeJeu();

        //Here I get the data
        //This is what I would like to force to refresh
        _listeJeux = _facadeJeu.findAllSansSoldes();

        initComponents();
    }

Вот метод фасадаЯ звоню:

@Override
    public List<Jeu> findAllSansSoldes()
    {
        List<Jeu> liste = new ArrayList<>();
        List<Jeu> temp = findAll(); //findAll is from the API

        for (Jeu j : temp)
        {
            if (j.getSoldeList().isEmpty())
            {
                liste.add(j);
            }
        }

        return liste;
    }

Я ожидаю, что когда я добавлю отношение между строкой Jeu и Solde , объект не будет отображаться на2-е окно.

Сначала я открываю это окно

Затем я выбираю объект во втором окне ( window2 ), чтобы создать связь междудва.В этом случае Путь Изгнания.Добавлено здесь (то же самое окно, что и у первого).

Но объект "Путь изгнания" все еще отображается во 2-м окне, когда я снова открываю его, даже когда я вызываю findAll () снова.Я ищу метод, который может для фасада сеанса обновить данные запроса или, возможно, уничтожить и создать экземпляр фасада.

...