不能发送一个 Postman 数据与许多

fgw7neuy  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(398)

嗨,我在我的项目中与spring boot和rest合作,我在两个enteties之间建立了一个关系,但我无法发送 Postman 请求添加一个任务及其类别,我甚至不确定这两个enteties是否正确相关他是两个实体和控制者
任务时间

@Entity
@Table(name="missions")
public class Mission {

    public Mission() {

    }

    public Mission(int id, String state, String adresse, int etatMission, String image, List<Categorie> categories,
            String ville, int duree, String description, String domaine) {
        this.id = id;
        this.state = state;
        this.adresse = adresse;
        this.etatMission = etatMission;
        this.image = image;
        this.categories = categories;
        this.ville = ville;
        this.duree = duree;
        this.description = description;
        this.domaine = domaine;
    }

    public List<Categorie> getCategories() {
        return categories;
    }

    public void setCategories(List<Categorie> categories) {
        this.categories = categories;
    }

    public String getVille() {
        return ville;
    }
    public void setVille(String ville) {
        this.ville = ville;
    }
    public Mission(Map<String,Object> userMap) {
        if (userMap.get("id") != null)  

        this.id = (int )userMap.get("id");
        this.state = (String) userMap.get("state");
        this.duree = (int) userMap.get("duree");
        this.domaine = (String) userMap.get("domaine");
        this.description = (String) userMap.get("description");
        this.ville=(String) userMap.get("ville");
        this.adresse=(String) userMap.get("adresse");
        this.etatMission=(int) userMap.get("etatMission");
        this.image=(String) userMap.get("image");
        this.categories=(List<Categorie>) userMap.get("categories");
    }

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String state;
private String adresse;
private int etatMission;
private String image;

@OneToMany(mappedBy="mission",cascade=CascadeType.ALL)
private List<Categorie> categories;

public String getImage() {
    return image;
}
public void setImage(String image) {
    this.image = image;
}

private String ville;
public int getEtatMission() {
    return etatMission;
}
public void setEtatMission(int etatMission) {
    this.etatMission = etatMission;
}

private int duree;
private String description;
private String domaine;

public String getDomaine() {
    return domaine;
}
public void setDomaine(String domaine) {
    this.domaine = domaine;
}
public String getDescription() {
    return description;
}
public void setDescription(String description) {
    this.description = description;
}
public String getAdresse() {
    return adresse;
}
public void setAdresse(String adresse) {
    this.adresse = adresse;
}
@Override
public String toString() {
    return "Mission [id=" + id +  ", state=" + state + ", duree=" + duree + "]";
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}

public String getState() {
    return state;
} 
public void setState(String state) {
    this.state = state;
}
public int getDuree() {
    return duree;
}
public void setDuree(int duree) {
    this.duree = duree;
}

public void add(Categorie cat) {

    if (categories == null) {
        categories = new ArrayList<>();
    }

    categories.add(cat);

    cat.setMission(this);
}   
}

类别Entity

@Entity
@Table(name="categorie")
public class Categorie {

    public Categorie() {

    }

    public Categorie(Map<String, Object> catMap) {
        this.id=(int) catMap.get("id");
        this.nom = (String) catMap.get("nom");
        this.mission =(Mission) catMap.get("mission_id") ;

    }

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id ;
    private String nom;
    @ManyToOne
    @JoinColumn(name="mission_id",referencedColumnName="id")
    private Mission mission;

    public Categorie(int id, String nom, Mission mission) {
        this.id = id;
        this.nom = nom;
        this.mission = mission;
    }
    public String getNom() {
        return nom;
    }
    public void setNom(String nom) {
        this.nom = nom;
    }

    @Override
    public String toString() {
        return "Categorie [nom=" + nom + "]";
    }
    public Mission getMission() {
        return mission;
    }
    public void setMission(Mission mission) {
        this.mission = mission;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

}

这是任务控制员

package ma.ac.emi.MinuteBrico.Controllers;

import java.util.List;
import java.util.Map;
import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import ma.ac.emi.MinuteBrico.Services.MissionServices;
import ma.ac.emi.MinuteBrico.Models.Mission;

@RestController
public class MissionController {

    @Autowired
      private MissionServices missionService;

    @CrossOrigin
    @GetMapping("/missions")
    public List<Mission> index(){
        return missionService.findAll();
    }
    @CrossOrigin
    @GetMapping("/missions/{id}")
    public Optional<Mission> indexById(@PathVariable String id){
        int missionId = Integer.parseInt(id);
        return missionService.findById(missionId);

    }
    @CrossOrigin()
    @PostMapping("/missions")
    public String create(@RequestBody Map<String, Object> missionMap) {
        System.out.println(missionMap);
        Mission mission = new Mission(missionMap);
        missionService.savemission(mission);
        return "Mission ajouté";

    }

}
package ma.ac.emi.MinuteBrico.Repositories;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;

import  ma.ac.emi.MinuteBrico.Models.Mission;

public interface MissionRepository extends JpaRepository<Mission,Integer> {

}

Postman 的要求

{ 
        "state": "Urgent",
        "adresse": "Av ben drisse",
        "etatMission": 0,
        "image": "assets/Brand.jpeg",
        "ville": "Chefchaouen",
        "duree": 480000,
        "description": "je veux quelqu\\'un pour me faire une cuisne",
        "domaine": "Plomberie",
          "categories":[
              {
                  "id":15,
                  "nom":"Menuiserie",
                  "mission":{
                      "field":"value"
                  }
              }
          ]

    }
px9o7tmv

px9o7tmv1#

尝试添加@manytone(cascade=cascadetype.all)

相关问题