Код: Выделить всё
@org.springframework.web.bind.annotation.RestController
public class RestController {
@Autowired
private CompanyRepository companyRepository;
@Autowired
private EmployeeRepository employeeRepository;
@PostMapping("/company")
public Company createCompany() {
// Generate a new name
String name = "Company" + companyRepository.count();
Company company = new Company(name);
company=companyRepository.save(company);
Employee John= new Employee("John", company);
employeeRepository.save(John);
Employee Jane= new Employee("Jane", company);
employeeRepository.save(Jane);
company=companyRepository.findById(company.getCompanyName()).orElseThrow();
return company;
}
@GetMapping("/company/{id}")
public Company getCompany(@PathVariable("id") String id) {
return companyRepository.findById(id).orElseThrow();
}
}
Код: Выделить всё
@Entity
public class Employee {
@Id
private final String name;
@ManyToOne()
@JoinColumn()
@JsonBackReference()
private Company company;
public Employee() {
this.name = "";
}
public Employee(String name, Company company) {
this.name = name;
this.company = company;
}
public String getName() {
return name;
}
public Company getCompany() {
return company;
}
}
@Entity
public class Company {
@Id
@Column(nullable = false, columnDefinition = "text")
private final String companyName;
@OneToMany(mappedBy="company",fetch = FetchType.EAGER,cascade = CascadeType.ALL,orphanRemoval = true)
private List employees;
public Company(String companyName) {
this.companyName = companyName;
}
public Company() {
this.companyName = "";
}
public String getCompanyName() {
return companyName;
}
public List getEmployees() {
return employees;
}
}
Код: Выделить всё
{
"companyName": "Company0",
"employees": null
}
Код: Выделить всё
{
"companyName": "Company0",
"employees": [
{
"name": "John"
},
{
"name": "Jane"
}
]
}
Так может кто-нибудь сказать мне, почему это случается?
Подробнее здесь: https://stackoverflow.com/questions/792 ... t-in-sprin
Мобильная версия