Bonjour,

J'ai un problème pour accéder à un integer qui est l'id de ma catégorie d'article (sa PK)

J'ai une class Article et une class CatégorieArticle, la PK de CategorieArticle est une FK dans ma table article avec une relation @ManyToOne. Du coup dans ma class Article, l'idCategorieArticle qui était un int, se transforme en CategorieArticle.

Problème dans mon test unitaire, pour insérer un article, je renseigne l'id d'une catégorie d'article qui est un int et c'est là qua ça coince, comment arriver à retrouver ou en tout cas à y accéder, j'ai essayé un getIdCategorieArticle, qui lui est un int, mais ça ne fonctionne pas ou alors, je ne l'appel pas au bon endroit.

j'espère que l'explication de mon problème est clair?

Class CategorieArticle
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package be.iepscfjemelle.projet_sgdb_v3.model;
 
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
 
/**
 * Classe CategorieArticle, reprend les attributs, accesseurs et constructeurs d'un
 * CategorieArticle. Les mêmes attributs que dans la DB. Avec les annotations pour générer 
 * les tables dans la DB
 *
 */
@Entity
@Table(name = "catégories_articles")
public class CategorieArticle implements Serializable{
 
    private static final long serialVersionUID = 4L;
 
    /**
     * Attributs
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "PK_id_categories_articles", columnDefinition = "INT(10) UNSIGNED")
    private int idCategorieArticle;
    @Column(name = "nom_categories_articles", unique = true, nullable = false, length = 50)
    private String nomCategorieArticle;
 
    /**
     * Constructeur par defaut
     */
    public CategorieArticle() {
    }
 
    /**
     * Constructeur
     * @param idCategorieArticle
     * @param nomCategorieArticle 
     */
    public CategorieArticle(int idCategorieArticle, String nomCategorieArticle) {
        this.idCategorieArticle = idCategorieArticle;
        this.nomCategorieArticle = nomCategorieArticle;
    }
 
    /**
     * Constructeur
     * @param nom 
     */
    public CategorieArticle(String nom) {
        this.nomCategorieArticle = nom;
    }
 
    /**
     * Constructeur
     * @param id 
     */
    public CategorieArticle(int id) {
        this.idCategorieArticle = id;
    }
 
    /**
     * Accesseurs
     * @return 
     */
 
    public int getIdCategorieArticle() {
        return idCategorieArticle;
    }
 
    public void setIdCategorieArticle(int idCategorieArticle) {
        this.idCategorieArticle = idCategorieArticle;
    }
 
    public String getNomCategorieArticle() {
        return nomCategorieArticle;
    }
 
    public void setNomCategorieArticle(String nomCategorieArticle) {
        this.nomCategorieArticle = nomCategorieArticle;
    }
 
 
}
Class Article
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
package be.iepscfjemelle.projet_sgdb_v3.model;
 
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.hibernate.annotations.Check;
 
/**
 * Classe Article, reprend les attributs, accesseurs et constructeurs d'un
 * Article. Les mêmes attributs que dans la DB. Avec les annotations pour générer 
 * les tables dans la DB
 * 
 */
@Entity
@Table(name = "articles")
@Check(constraints = "length(Stock_total_articles) >= 0")
//@Check(constraints = stockArticle CHECK ((length(Stock_total_articles) >= 0))
public class Article implements Serializable{
 
    private static final long serialVersionUID = 3L;
 
    /**
     * Attributs
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "PK_id_articles", columnDefinition = "INT(10) UNSIGNED")
    private int idArticle;
    @Column(name = "Stock_total_articles", nullable = false, columnDefinition = "INT(10) UNSIGNED")
    private int stockArticle;
    @Column(name = "nom_articles", nullable = false, length = 50)
    private String nomArticle;
    @Column(name = "Fabriquant", nullable = false, length = 50)
    private String fabriquantArticle;
    @Column(name = "part_number", unique = true, nullable = false, length = 20)
    private String part_number;
    @Column(name = "prix_articles", nullable = false)
    public Double prixUnitaireArticle;
    @Column(name = "actif_articles", nullable = false)
    public Boolean status;
 
    @ManyToOne
    @JoinColumn(name = "FK_Catégories_articles_id_categories_articles", referencedColumnName = "PK_id_categories_articles", nullable = false)
    private CategorieArticle idCategorie;
 
    @Transient
    public CategorieArticle Categorie;
 
    /**
     * Constructeur par defaut
     */
    public Article() {
    }
 
    /**
     * Constructeur
     * @param idArticle
     * @param stockArticle
     * @param nomArticle
     * @param fabriquantArticle
     * @param prixUnitaireArticle
     * @param Categorie 
     */
    public Article(int idArticle, int stockArticle, String nomArticle, String fabriquantArticle, Double prixUnitaireArticle, CategorieArticle Categorie) {
        this.idArticle = idArticle;
        this.stockArticle = stockArticle;
        this.nomArticle = nomArticle;
        this.fabriquantArticle = fabriquantArticle;
        this.prixUnitaireArticle = prixUnitaireArticle;
        this.Categorie = Categorie;
    }
 
    /**
     * Constructeur
     * @param nom
     * @param prix
     * @param status
     * @param fabriquant
     * @param stock
     * @param catégorie 
     */
    public Article(String partNbr, String nom, Double prix, boolean status, String fabriquant, int stock, CategorieArticle idCat) {
        this.part_number = partNbr;
        this.nomArticle = nom;
        this.prixUnitaireArticle = prix;
        this.status = status;
        this.fabriquantArticle = fabriquant;
        this.stockArticle= stock;
        this.idCategorie = idCat;
    }
 
    /**
     * Constructeur
     * @param id 
     */
    public Article(int id) {
        this.idArticle = id;
    }
 
    /**
     * Accesseurs
     * @return 
     */
    public int getIdArticle() {
        return idArticle;
    }
 
    public void setIdArticle(int idArticle) {
        this.idArticle = idArticle;
    }
 
    public int getStockArticle() {
        return stockArticle;
    }
 
    public void setStockArticle(int stockArticle) {
        this.stockArticle = stockArticle;
    }
 
    public String getNomArticle() {
        return nomArticle;
    }
 
    public void setNomArticle(String nomArticle) {
        this.nomArticle = nomArticle;
    }
 
    public String getFabriquantArticle() {
        return fabriquantArticle;
    }
 
    public void setFabriquantArticle(String fabriquantArticle) {
        this.fabriquantArticle = fabriquantArticle;
    }
 
    public Double getPrixUnitaireArticle() {
        return prixUnitaireArticle;
    }
 
    public void setPrixUnitaireArticle(Double prixUnitaireArticle) {
        this.prixUnitaireArticle = prixUnitaireArticle;
    }
 
    public CategorieArticle getCategorie() {
        return Categorie;
    }
 
    public void setCategorie(CategorieArticle Categorie) {
        this.Categorie = Categorie;
    }
 
    public CategorieArticle getIdCategorie() {
        return idCategorie;
    }
 
    public void setIdCategorie(CategorieArticle idCategorie) {
        this.idCategorie = idCategorie;
    }
 
    public Boolean getStatus() {
        return status;
    }
 
    public void setStatus(Boolean status) {
        this.status = status;
    }
 
    public String getPart_number() {
        return part_number;
    }
 
    public void setPart_number(String part_number) {
        this.part_number = part_number;
    }
 
 
}
Mon controler avec ma méthode addArticle
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
/**
     * Ajout d"un article
     *
     * @param nom
     * @param prix
     * @param status
     * @param fabriquant
     * @param stock
     * @param catégorie
     */
    public void addArticle(String partNbr, String nom, double prix, boolean status, String fabriquant, int stock, CategorieArticle id) {
        Article article = new Article(partNbr, nom, prix, status, fabriquant, stock, id);
        IntDAO createArticle = DAOFactory.getDAO("ArticleDAO");
        createArticle.create(article);
    }
mon test unnitaire test1_insertArticles
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
@Test
    public void test1_insertArticles() {
        Controler contr = Controler.getInstance();
        contr.addArticle("5432109776", "beurre de cacahuette", 3.65, true, "Lu", 120, 1);
        System.out.println("TEST1 - Client ajouté dans la DB.");
    }