I currently creating supplier form that we can add supplier and assign him to different brand and categories.that mean supplier related with one to many relation with supplier_has_brand_category. but i face this issue. frontend supplier obj pass correctly without any other issue. but backend supplier_has_brand_category is null.
Supplier Entity
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.*;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
@Entity
@Table(name = "supplier")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SupplierEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id",unique = true)
private int id;
@Column(name = "supplierid",unique = true)
@NotNull
private String supplierid;
@Column(name = "name")
@NotNull
private String name;
@Column(name = "address")
private String Address;
@Column(name = "phone")
@NotNull
private String phone;
@Column(name = "email")
@NotNull
private String email;
@Column(name = "agentname")
@NotNull
private String agentname;
@Column(name = "agentphone")
@NotNull
private String agentphone;
@Column(name = "agentemail")
@NotNull
private String agentemail;
@Column(name = "branch")
@NotNull
private String branch;
@Column(name = "accountname")
@NotNull
private String accountname;
@Column(name = "accountno")
@NotNull
private String accountno;
@Column(name="addeddate")
@NotNull
private LocalDateTime addeddate;
@Column(name="modifydate")
private LocalDateTime modifydate;
@Column(name="deletedate")
private LocalDateTime deletedate;
@Column(name = "addeduser")
@NotNull
private int addeduser;
@Column(name = "modifyuser")
private int modifyuser;
@Column(name = "deleteuser")
private int deleteuser;
@ManyToOne
@JoinColumn(name="bankname_id",referencedColumnName = "id")
private BankNameEntity bankname_id;
@ManyToOne
@JoinColumn(name="supplierstatus_id",referencedColumnName = "id")
private SupplierStatusEntity supplierstatus_id;
@OneToMany(mappedBy = "supplier_id")
@JsonIgnore //block the recursion
private List<SupplierHasBrandCategoryEntity> supplier_has_brand_category;
}
SupplierHasBrandCategoryEntity
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "supplier_has_brand_category")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SupplierHasBrandCategoryEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id",unique = true)
private int id;
@ManyToOne
@JoinColumn(name="supplier_id",referencedColumnName = "id")
private SupplierEntity supplier_id;
@ManyToOne
@JoinColumn(name="brand_id",referencedColumnName = "id")
private BrandEntity brand_id;
@ManyToOne
@JoinColumn(name="category_id",referencedColumnName = "id")
private CategoryEntity category_id;
}
supplierController POST Request
@PostMapping(value = "/supplier")
public String addSupplierData(@RequestBody SupplierEntity supplier){
//Authentication and Autherization
Authentication authentication=SecurityContextHolder.getContext().getAuthentication();
HashMap<String,Boolean> userPrivilage=privilageController.getPrivilageByUserModule(authentication.getName(),"SUPPLIER");
if(!userPrivilage.get("insert")){
return "Permission Denied! Save not Completed";
}
//check already existance
SupplierEntity extSupplierEmail=daoSupplier.getByEmail(supplier.getEmail());
if(extSupplierEmail!=null){
return "Save not Completed : given Name - "+supplier.getEmail()+" Already Exist...!";
}
try {
//set AutoGenarated Value
String nextNumber=daoSupplier.getNextSupplierNumber();
//if next employee number is not come then set manualy last number+1
if(nextNumber==null){
supplier.setSupplierid("SUP0001");
}else{
supplier.setSupplierid(nextNumber);
}
UserEntity addedUserData=daoUser.getByUsername(authentication.getName());
supplier.setAddeduser(addedUserData.getId());
supplier.setAddeddate(LocalDateTime.now());
/* System.out.println("Supplier data: " + supplier); */
for(SupplierHasBrandCategoryEntity supplierHasBrandCategory:supplier.getSupplier_has_brand_category()){
supplierHasBrandCategory.setSupplier_id(supplier);
}
daoSupplier.save(supplier);
return "OK";
} catch (Exception e) {
return "Save not Completed: "+e.getMessage();
}
}
}
when i was click the submit button, i console log the object.that object has the supplier_has_item_category. but in backend it is null.other supplier data print normally. can you solve this issue to me.
You need to sign in to view this answers