Quantcast
Channel: Recent Questions - Stack Overflow
Viewing all articles
Browse latest Browse all 12111

@ManyToOne and @OneToMany adding and retrieving problem in springboot

$
0
0

I am encountering a problem in my Spring Boot JPA application related to relationships between the Owner and Car entities. The issue arises when attempting to associate a new Car with an existing Owner or when adding a new Owner with a set of Cars. While the owner and cars are added successfully to the database, the owner_id in the Car table is set to null and when trying to retrieve an owner I get no response.

Could anyone help to find a solution : My objective is adding owner with sets of cars, retrieving owners with their cars and while inserting a car with an existing owner it will be retrieved also.

these are my classes and json payloads:

Car.java class

@Entity@Table(name="Car")@Datapublic class Car {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    @Column(name = "car_id")    private Long id;    @Column(name = "name")    private String car_name;    @Column(name = "model")    private String Lmodel;    @Column(name = "firstY")    private String firsty;    @ManyToOne()    @JoinColumn(name="owner_id", referencedColumnName = "owner_id")            private Owner owner;

Owner.java Class

@Entity@Table(name="Owner")@Datapublic class Owner {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    @Column(name = "owner_id", nullable = false)    private Long id;    @Column(name = "first_name")    private String first_name;    @Column(name = "last_name")    private String last_name;    @Column(name = "address")    private String address;    @OneToMany(targetEntity = Car.class, mappedBy = "owner", cascade = CascadeType.ALL, orphanRemoval = true)    private List<Car> car;}

Main Controller

package com.example.product.controllers;import com.example.product.model.Car;import com.example.product.model.CarService;import com.example.product.model.Owner;import com.example.product.model.OwnerService;import jakarta.transaction.Transactional;import lombok.AllArgsConstructor;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.HttpStatus;import org.springframework.web.bind.annotation.*;import java.util.List;@AllArgsConstructor@RestControllerpublic class MainController {    @Autowired    private CarService carService;    @Autowired    private  OwnerService ownerService;    @Transactional    @DeleteMapping(value = "/Owner/{id}")    public void deleteOwner(@PathVariable Long id){        ownerService.deleteOwnerById(id);    }    @PostMapping(value = "/Owner")    public void addOwner(@RequestBody Owner owner){        ownerService.addOwner(owner);    }    @GetMapping(value = "/Owner/{id}")    public Owner getOwner(@PathVariable Long id){        return  ownerService.findOwnerById(id);    }    @PutMapping(value = "/Owner")    public void updateOwner(Long id, String firstName, String lastName, String email, Car car){        ownerService.updateOwner(id,firstName,lastName,email,car);    }    @GetMapping(value = "/Owners")    public List<Owner> getAllOwners(){ return ownerService.getAllOwners();}    @Transactional    @DeleteMapping (value = "/Car/{id}")    public void deleteCar(@PathVariable Long id){        carService.deleteCarById(id);    }    @PostMapping(value = "/Car")    @ResponseStatus(HttpStatus.CREATED)    public void addCar(@RequestBody  Car car){        carService.addCar(car);    }    @GetMapping(value = "/Car/{id}")    public Car getCar(@PathVariable Long id){        return  carService.getCarById(id);    }    @PutMapping(value = "/Car")    public void updateCar (Long id,String firsty,String name,String model){        carService.updateCarById(firsty,name,model,id);    }    @GetMapping(value="/Cars")    public List<Car> getAllCars(){        return carService.getAllCars();    }}

Json payload to add a car into the database

{"car_name": "Toyota","lmodel": "Camry","firsty": "2023","owner": {"id": 1    }}

Json payload to add an owner into the database

{"first_name": "John","last_name": "Doe","address": "123 Main Street","car": [    {"car_name": "BMW","lmodel": "Model 3","firsty": "2022"            },    {"car_name": "Mercedes","lmodel": "C-Class","firsty": "2021"              }  ]}

Viewing all articles
Browse latest Browse all 12111

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>