java - Spring JPA Hibernate ManyToMany -
i'm using springboot, spring jpa hibernate, i'm trying use manytomany annotation isn't working.
the join table created, never populated.
@entity @table(name = "commande") public class commande { @id @generatedvalue(strategy = generationtype.auto) private integer commandeid; private string etat; private string date_de_validation; @manytoone(cascade = cascadetype.all) private client clientid; @manytoone(cascade = cascadetype.all) private livreur livreurid; @manytoone(cascade = cascadetype.all) private livraison livraisonid; @manytomany @jointable(name = "join_produit_to_commande", joincolumns = { @joincolumn(name = "commandeid") }, inversejoincolumns = { @joincolumn(name = "produitid") }) private set<produit> produits = new hashset<produit>();; public commande() { } public commande(string etat, string date_de_validation, client clientid, livreur livreurid, livraison livraisonid) { setetat(etat); setdate_de_validation(date_de_validation); setclient(clientid); setlivreur(livreurid); setlivraison(livraisonid); } public integer getcommandeid() { return this.commandeid; } public void setcommandeid(integer commandeid) { this.commandeid = commandeid; } public string getetat() { return this.etat; } public void setetat(string etat) { this.etat = etat; } public string getdate_de_validation() { return this.date_de_validation; } public void setdate_de_validation(string date_de_validation) { this.date_de_validation = date_de_validation; } public client getclient() { return this.clientid; } public void setclient(client clientid) { this.clientid = clientid; } public livreur getlivreur() { return this.livreurid; } public void setlivreur(livreur livreurid) { this.livreurid = livreurid; } public livraison getlivraison() { return this.livraisonid; } public void setlivraison(livraison livraisonid) { this.livraisonid = livraisonid; } public client getclientid() { return clientid; } public void setclientid(client clientid) { this.clientid = clientid; } public livreur getlivreurid() { return livreurid; } public void setlivreurid(livreur livreurid) { this.livreurid = livreurid; } public livraison getlivraisonid() { return livraisonid; } public void setlivraisonid(livraison livraisonid) { this.livraisonid = livraisonid; } public collection<produit> getproduits() { return produits; } public void setproduits(set<produit> produits) { this.produits = produits; } public string tostring() { return "commandeid=" + commandeid + " etat=" + etat + " date_de_validation=" + date_de_validation + " clientid=" + clientid + " livreurid=" + livreurid + " livraisonid=" + livraisonid; } }
this second class
@entity @table(name = "produit") public class produit { @id @generatedvalue(strategy = generationtype.auto) private integer produitid; private string libelle; private double poid; private string type; @manytomany(mappedby = "produits") private set<commande> commandes = new hashset<commande>();; public produit() { } public produit(string libelle, double poid, string type) { setlibelle(libelle); setpoid(poid); settype(type); } public string getlibelle() { return this.libelle; } public void setlibelle(string libelle) { this.libelle = libelle; } public double getpoid() { return this.poid; } public void setpoid(double poid) { this.poid = poid; } public string gettype() { return this.type; } public void settype(string type) { this.type = type; } public set<commande> getcommandes() { return commandes; } public void setcommandes(set<commande> commandes) { this.commandes = commandes; } public string tostring() { return "libelle=" + libelle + " poid=" + poid + " type=" + type + " produitid=" + produitid + " commandes : " + commandes; } }
and here unit testing
@runwith(springjunit4classrunner.class) @springapplicationconfiguration(classes = pfeapplication.class) @webappconfiguration @transactional @transactionconfiguration(defaultrollback = true) public class pfeapplicationtests { @autowired private entrepriseservice service; @autowired private phoneservice pservice; @autowired private livreurservice lservice; @autowired private carservice cservice; @autowired private produitservice prservice; @autowired private clientservice clservice; @autowired private commandeservice cmdservice; @autowired private positionlivreurservice posservice; @autowired private livraisonservice livservice; @test public void contextloads() { } @test @transactional public void manytomanytest(){ produit produit1 = new produit("lavabo", 50, "cassable"); livreur livreur1 = new livreur("adadi", "soufiane", "03/03/1992", "0876543456"); client client1 = new client("ouali", "ouali@gmail.com", "0743453462", "fes", "nologo"); livraison livraison1 = new livraison("24/04/2015", "25/04/2015", false, false, livreur1); commande commande1 = new commande("validé", "25/04/2015", client1, livreur1, livraison1); produit1.getcommandes().add(commande1); commande1.getproduits().add(produit1); cmdservice.addcommande(commande1); prservice.addproduit(produit1); } }
this problem similar earlier posting of mine. see my original posting. solved myself - bug in implementation, if change set<>
list<>
, maybe work. case different, using spring implementation, knows ...
Comments
Post a Comment