我目前正在为我的“É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实例。