Bonjour,

je suis en train d'essayer d'afficher une table contenant des record que je récupère avec JPA .

j'ai créé mon propre TableModel de la facon suivante :

UnitsextSheets est ma classe de persistance.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
private class MyUnitsextSheetTableModel extends DefaultTableModel {
private static final long serialVersionUID = 1L;
 
		List<UnitsextSheets> sheets;
		String[] headers;
 
		public MyUnitsextSheetTableModel(List result,  Object[] header){
			sheets = (List<UnitsextSheets>) result;
			headers = (String[]) header;
		}
 
        public Class getColumnClass(int column) {
			switch (column) {
            	case 0:
            		return Boolean.class;
                default:
                      return String.class;
			}
		}
 
        public int getRowCount() {
        	return sheets.size();
        }
 
        public int getColumnCount() {
        	return headers.length;
        }
        public String getColumnName(int colIndex){
        	return headers[colIndex];
        }
 
        public Object getValueAt(int rowIndex, int colIndex){
        	switch (colIndex) {
        		case 1:
        			return sheets.get(rowIndex).getImported();
        		default:
        			return "empty";
        	}
        }
 
	}
à l’exécution tout se passe bien , je récupère bien ma liste de sheet donc pas de problème du coté de la requête HQL, par contre quand la table fait appele à getRowCount sheet.size() plante car sheet est null.

et je ne comprend pas pourquoi .

avant ca je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
TableModel tm = new MyUnitsextSheetTableModel(result, currentHeader.toArray());
avez vous une idée ou une explication pour faire ca au mieux .


et deuxieme question , comment je peux faire que lorsque je change une valeur dans la table, mon objet persistant se mette a jour (donc change dans la base) ????


merci pour votre aide