如何强制会话外观刷新其数据(Java EE)

时间:2019-03-31 22:20:26

标签: java-ee java-api facade

我目前正在为我的“Épreuvesynthèsede program”(魁北克省的最后一所学业)编写一个应用程序。

我有一个窗口,当我单击一个按钮时,将打开另一个表单,其中包含数据库中的对象列表,因此我可以选择一个并将其返回到先前的窗口。我只想显示表 Jeu 中与表 Solde 没有关系的对象。第一次打开窗口时它会起作用,但是如果我进行任何更改(例如向 Jeu 的一行添加关系),则当我重新打开窗口并调用会话时列表不会更新Java EE的外观方法 findAll()

These是我要引用的两个表

在这里打开窗口(参数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 行之间添加关系时,该对象不会显示在第二个窗口中。

首先,我打开this窗口

然后,我在第二个窗口(window2)中选择一个对象以在两者之间创建关系。在这种情况下,流亡之路。添加了here(与第一个窗口相同)。

但是,即使我再次调用 findAll(),再次打开它时,“放逐之路”对象仍会显示在第二个窗口中。我正在寻找一种方法,该方法可以使会话Facade更新查询数据或破坏并创建Facade实例。

0 个答案:

没有答案