add connection one-to-many
This commit is contained in:
parent
8fca73e0a4
commit
7021f82f56
@ -51,6 +51,10 @@ public class CompanyController {
|
||||
public Company deleteCompany(@PathVariable Long id) {
|
||||
return companyService.deleteCompany(id);
|
||||
}
|
||||
|
||||
@GetMapping("/list={id}")
|
||||
public List<RequestForCooperation> getRequestsOfCompany(@PathVariable Long id)
|
||||
{
|
||||
return companyService.findCompany(id).getList();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,6 +2,8 @@ package com.example.demo.speaker.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@Entity
|
||||
@ -14,6 +16,8 @@ public class Company {
|
||||
private String adressCompany;
|
||||
@Column(nullable = false)
|
||||
private String contactEmail;
|
||||
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
private List<RequestForCooperation> requests = new ArrayList<>();
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
@ -64,6 +68,14 @@ public class Company {
|
||||
{
|
||||
this.contactEmail = contactEmail;
|
||||
}
|
||||
|
||||
public void setList(RequestForCooperation req) {
|
||||
this.requests.add(req);
|
||||
}
|
||||
public List<RequestForCooperation> getList()
|
||||
{
|
||||
return requests;
|
||||
}
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
|
@ -1,6 +1,8 @@
|
||||
package com.example.demo.speaker.service;
|
||||
|
||||
import com.example.demo.speaker.model.Company;
|
||||
import com.example.demo.speaker.model.RequestForCooperation;
|
||||
import com.example.demo.speaker.model.TypeOfRequestEnum;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.EntityNotFoundException;
|
||||
import jakarta.persistence.PersistenceContext;
|
||||
@ -53,4 +55,14 @@ public class CompanyService {
|
||||
public void deleteAllCompanies() {
|
||||
em.createQuery("delete from Company").executeUpdate();
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public List<RequestForCooperation> getTypesRequests(Long id, TypeOfRequestEnum type)
|
||||
{
|
||||
final Company comp = findCompany(id);
|
||||
var list = comp.getList();
|
||||
List<RequestForCooperation> res = list.stream().
|
||||
filter(r -> r.getType() == type).toList();
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,8 @@ import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@Service
|
||||
public class RequestForCooperationService {
|
||||
@PersistenceContext
|
||||
@ -26,6 +28,7 @@ public class RequestForCooperationService {
|
||||
}
|
||||
final RequestForCooperation report = new RequestForCooperation(name, createDate, type, text);
|
||||
em.persist(report);
|
||||
name.setList(report);
|
||||
return report;
|
||||
}
|
||||
|
||||
|
@ -19,6 +19,7 @@ import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@SpringBootTest
|
||||
public class JPATests {
|
||||
@ -57,7 +58,43 @@ public class JPATests {
|
||||
log.info(addCompany.toString());
|
||||
Assertions.assertEquals(comp, addCompany);
|
||||
}
|
||||
@Test
|
||||
void checkConnectionCompanyAndRequest() throws ParseException {
|
||||
requestService.deleteAllRequests();
|
||||
companyService.deleteAllCompanies();
|
||||
|
||||
final Company comp = companyService.addCompany("Mars", "Ульяновск, Солнечная 19",
|
||||
"Солнечная 19", "mars@mail.ru");
|
||||
final TypeOfRequestEnum type = TypeOfRequestEnum.TRACKING;
|
||||
RequestForCooperation report = requestService.addRequest(comp,
|
||||
formatter.parse("05-Jun-2018"),
|
||||
type, "Хотим сотрудничать");
|
||||
report = requestService.addRequest(comp,
|
||||
formatter.parse("18-Jun-2018"),
|
||||
type, "Хотим сотрудничать");
|
||||
var listRequest = comp.getList();
|
||||
Assertions.assertEquals(2, listRequest.size());
|
||||
|
||||
}
|
||||
@Test
|
||||
void checkConnectionRequestAndCompany() throws ParseException {
|
||||
requestService.deleteAllRequests();
|
||||
companyService.deleteAllCompanies();
|
||||
|
||||
final Company comp = companyService.addCompany("Mars", "Ульяновск, Солнечная 19",
|
||||
"Солнечная 19", "mars@mail.ru");
|
||||
final TypeOfRequestEnum type = TypeOfRequestEnum.TRACKING;
|
||||
RequestForCooperation report = requestService.addRequest(comp,
|
||||
formatter.parse("05-Jun-2018"),
|
||||
type, "Хотим сотрудничать");
|
||||
report = requestService.addRequest(comp,
|
||||
formatter.parse("18-Jun-2018"),
|
||||
type, "Хотим сотрудничать");
|
||||
List<Company> listCompany = requestService.findAllRequests().
|
||||
stream().map(p -> p.getName()).toList();
|
||||
Assertions.assertEquals(1, listCompany.size());
|
||||
|
||||
}
|
||||
@Test
|
||||
void testReportCreate() throws ParseException {
|
||||
requestService.deleteAllRequests();
|
||||
@ -157,4 +194,5 @@ public class JPATests {
|
||||
log.info(reports.toString());
|
||||
Assertions.assertEquals(0, reports.size());
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user