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) {
|
public Company deleteCompany(@PathVariable Long id) {
|
||||||
return companyService.deleteCompany(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 jakarta.persistence.*;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@ -14,6 +16,8 @@ public class Company {
|
|||||||
private String adressCompany;
|
private String adressCompany;
|
||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
private String contactEmail;
|
private String contactEmail;
|
||||||
|
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
|
||||||
|
private List<RequestForCooperation> requests = new ArrayList<>();
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||||
@ -64,6 +68,14 @@ public class Company {
|
|||||||
{
|
{
|
||||||
this.contactEmail = contactEmail;
|
this.contactEmail = contactEmail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setList(RequestForCooperation req) {
|
||||||
|
this.requests.add(req);
|
||||||
|
}
|
||||||
|
public List<RequestForCooperation> getList()
|
||||||
|
{
|
||||||
|
return requests;
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
if (this == o) return true;
|
if (this == o) return true;
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.example.demo.speaker.service;
|
package com.example.demo.speaker.service;
|
||||||
|
|
||||||
import com.example.demo.speaker.model.Company;
|
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.EntityManager;
|
||||||
import jakarta.persistence.EntityNotFoundException;
|
import jakarta.persistence.EntityNotFoundException;
|
||||||
import jakarta.persistence.PersistenceContext;
|
import jakarta.persistence.PersistenceContext;
|
||||||
@ -53,4 +55,14 @@ public class CompanyService {
|
|||||||
public void deleteAllCompanies() {
|
public void deleteAllCompanies() {
|
||||||
em.createQuery("delete from Company").executeUpdate();
|
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.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class RequestForCooperationService {
|
public class RequestForCooperationService {
|
||||||
@PersistenceContext
|
@PersistenceContext
|
||||||
@ -26,6 +28,7 @@ public class RequestForCooperationService {
|
|||||||
}
|
}
|
||||||
final RequestForCooperation report = new RequestForCooperation(name, createDate, type, text);
|
final RequestForCooperation report = new RequestForCooperation(name, createDate, type, text);
|
||||||
em.persist(report);
|
em.persist(report);
|
||||||
|
name.setList(report);
|
||||||
return report;
|
return report;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@ import java.text.ParseException;
|
|||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
public class JPATests {
|
public class JPATests {
|
||||||
@ -57,7 +58,43 @@ public class JPATests {
|
|||||||
log.info(addCompany.toString());
|
log.info(addCompany.toString());
|
||||||
Assertions.assertEquals(comp, addCompany);
|
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
|
@Test
|
||||||
void testReportCreate() throws ParseException {
|
void testReportCreate() throws ParseException {
|
||||||
requestService.deleteAllRequests();
|
requestService.deleteAllRequests();
|
||||||
@ -157,4 +194,5 @@ public class JPATests {
|
|||||||
log.info(reports.toString());
|
log.info(reports.toString());
|
||||||
Assertions.assertEquals(0, reports.size());
|
Assertions.assertEquals(0, reports.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user