Почему данные «один ко многим» не передаются на сервер?JAVA

Программисты JAVA общаются здесь
Anonymous
Почему данные «один ко многим» не передаются на сервер?

Сообщение Anonymous »

В настоящее время я создаю форму поставщика, в которой мы можем добавлять поставщика и присваивать ему разные бренды и категории. Это означает, что поставщик связан отношением один ко многим с поставщиком_has_brand_category. но я столкнулся с этой проблемой. Объект поставщика внешнего интерфейса проходит правильно, без каких-либо других проблем. но бэкэнд-поставщик_has_brand_category имеет значение null.
Изображение

Субъект-поставщик

Код: Выделить всё

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  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;
}
POST-запрос контроллера поставщика

Код: Выделить всё

@PostMapping(value = "/supplier")
public String addSupplierData(@RequestBody SupplierEntity supplier){
//Authentication and Autherization
Authentication authentication=SecurityContextHolder.getContext().getAuthentication();
HashMap 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();
}
}
}
когда я нажимал кнопку «Отправить», я регистрировал объект в консоли. Этот объект имеет категорию поставщика_has_item_category. но в серверной части это значение null. Данные других поставщиков печатаются нормально. можешь ли ты решить мне эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/790 ... to-backend

Вернуться в «JAVA»