Revize ba120f65
Přidáno uživatelem Jakub Šmíd před asi 2 roky(ů)
backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItem.java | ||
---|---|---|
70 | 70 |
/** |
71 | 71 |
* Bibliography |
72 | 72 |
*/ |
73 |
@OneToMany(mappedBy = "catalogItem", cascade = CascadeType.ALL, orphanRemoval = true) |
|
73 |
@OneToMany(mappedBy = "catalogItem", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
|
|
74 | 74 |
@LazyCollection(LazyCollectionOption.FALSE) |
75 | 75 |
@Fetch(FetchMode.SUBSELECT) |
76 | 76 |
private Set<Bibliography> bibliography = new HashSet<>(); |
... | ... | |
78 | 78 |
/** |
79 | 79 |
* Countries |
80 | 80 |
*/ |
81 |
@OneToMany(mappedBy = "catalogItem", cascade = CascadeType.ALL, orphanRemoval = true) |
|
81 |
@OneToMany(mappedBy = "catalogItem", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
|
|
82 | 82 |
@LazyCollection(LazyCollectionOption.FALSE) |
83 | 83 |
@Fetch(FetchMode.SUBSELECT) |
84 | 84 |
private Set<Country> countries = new HashSet<>(); |
... | ... | |
86 | 86 |
/** |
87 | 87 |
* Written forms |
88 | 88 |
*/ |
89 |
@OneToMany(mappedBy = "catalogItem", cascade = CascadeType.ALL, orphanRemoval = true) |
|
89 |
@OneToMany(mappedBy = "catalogItem", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
|
|
90 | 90 |
@LazyCollection(LazyCollectionOption.FALSE) |
91 | 91 |
@Fetch(FetchMode.SUBSELECT) |
92 | 92 |
private Set<WrittenForm> writtenForms = new HashSet<>(); |
... | ... | |
94 | 94 |
/** |
95 | 95 |
* Alternative names |
96 | 96 |
*/ |
97 |
@OneToMany(mappedBy = "catalogItem", cascade = CascadeType.ALL, orphanRemoval = true) |
|
97 |
@OneToMany(mappedBy = "catalogItem", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
|
|
98 | 98 |
@LazyCollection(LazyCollectionOption.FALSE) |
99 | 99 |
@Fetch(FetchMode.SUBSELECT) |
100 | 100 |
private Set<AlternativeName> alternativeNames = new HashSet<>(); |
backend/src/main/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImpl.java | ||
---|---|---|
191 | 191 |
@Override |
192 | 192 |
public List<CatalogItemDto> getCatalog(String name, String country, String type, String writtenForm) { |
193 | 193 |
log.info("Retrieving catalog"); |
194 |
|
|
195 | 194 |
String finalName = name.replaceAll(WILDCARD_CHARACTER_REGEX, WILDCARD_CHARACTER_REGEX_JAVA).replaceAll(WILDCARD_CHARACTERS_REGEX, WILDCARD_CHARACTERS_REGEX_JAVA); |
196 | 195 |
String finalCountry = country.replaceAll(WILDCARD_CHARACTER_REGEX, WILDCARD_CHARACTER_REGEX_JAVA).replaceAll(WILDCARD_CHARACTERS_REGEX, WILDCARD_CHARACTERS_REGEX_JAVA); |
197 | 196 |
String finalType = type.replaceAll(WILDCARD_CHARACTER_REGEX, WILDCARD_CHARACTER_REGEX_JAVA).replaceAll(WILDCARD_CHARACTERS_REGEX, WILDCARD_CHARACTERS_REGEX_JAVA); |
... | ... | |
210 | 209 |
Predicate<CatalogItem> predicateWrittenForm = i -> finalWrittenForm.equals("") || i.getWrittenForms().stream().anyMatch(t -> patternWrittenForm.matcher(t.getForm()).matches()); |
211 | 210 |
|
212 | 211 |
catalogItems = catalogItems.stream().filter(predicateName.and(predicateCountry).and(predicateType).and(predicateWrittenForm)).collect(Collectors.toList()); |
213 |
|
|
214 | 212 |
return catalogItems.stream().map(this::convertEntityToDto).collect(Collectors.toList()); |
215 | 213 |
} |
216 | 214 |
|
... | ... | |
239 | 237 |
catalogItem.setCertainty(catalogItemDto.getCertainty()); |
240 | 238 |
catalogItem.setLatitude(catalogItemDto.getLatitude()); |
241 | 239 |
catalogItem.setLongitude(catalogItemDto.getLongitude()); |
242 |
catalogItem.setBibliography(catalogItemDto.getBibliography() |
|
240 |
|
|
241 |
catalogItem.getBibliography().clear(); |
|
242 |
catalogItem.getBibliography().addAll(catalogItemDto.getBibliography() |
|
243 | 243 |
.stream().map(s -> new Bibliography(s, catalogItem)).collect(Collectors.toSet())); |
244 |
catalogItem.setTypes(catalogItemDto.getTypes() |
|
244 |
|
|
245 |
catalogItem.getTypes().clear(); |
|
246 |
catalogItem.getTypes().addAll(catalogItemDto.getTypes() |
|
245 | 247 |
.stream().map(Type::new).collect(Collectors.toSet())); |
246 |
catalogItem.setCountries(catalogItemDto.getCountries() |
|
248 |
|
|
249 |
catalogItem.getCountries().clear(); |
|
250 |
catalogItem.getCountries().addAll(catalogItemDto.getCountries() |
|
247 | 251 |
.stream().map(s -> new Country(s, catalogItem)).collect(Collectors.toSet())); |
248 |
catalogItem.setAlternativeNames(catalogItemDto.getAlternativeNames() |
|
252 |
|
|
253 |
catalogItem.getAlternativeNames().clear(); |
|
254 |
catalogItem.getAlternativeNames().addAll(catalogItemDto.getAlternativeNames() |
|
249 | 255 |
.stream().map(s -> new AlternativeName(s, catalogItem)).collect(Collectors.toSet())); |
250 |
catalogItem.setWrittenForms(catalogItemDto.getWrittenForms() |
|
256 |
|
|
257 |
catalogItem.getWrittenForms().clear(); |
|
258 |
catalogItem.getWrittenForms().addAll(catalogItemDto.getWrittenForms() |
|
251 | 259 |
.stream().map(s -> new WrittenForm(s, catalogItem)).collect(Collectors.toSet())); |
260 |
|
|
252 | 261 |
catalogItem.setDescription(catalogItemDto.getDescription()); |
253 | 262 |
} |
254 | 263 |
|
backend/src/test/java/cz/zcu/kiv/backendapi/catalog/CatalogItemServiceImplTest.java | ||
---|---|---|
193 | 193 |
CatalogItem catalogItem = new CatalogItem(); |
194 | 194 |
catalogItem.setId(id); |
195 | 195 |
catalogItem.setName("name"); |
196 |
catalogItem.setBibliography(Set.of(new Bibliography("bibl", catalogItem)));
|
|
197 |
catalogItem.setTypes(Set.of(type));
|
|
198 |
catalogItem.setAlternativeNames(Set.of(new AlternativeName("altName", catalogItem)));
|
|
199 |
catalogItem.setCountries(Set.of(new Country("country", catalogItem)));
|
|
200 |
catalogItem.setWrittenForms(Set.of(new WrittenForm("written", catalogItem)));
|
|
196 |
catalogItem.setBibliography(Stream.of(new Bibliography("bibl", catalogItem)).collect(Collectors.toSet()));
|
|
197 |
catalogItem.setTypes(Stream.of(type).collect(Collectors.toSet()));
|
|
198 |
catalogItem.setAlternativeNames(Stream.of(new AlternativeName("altName", catalogItem)).collect(Collectors.toSet()));
|
|
199 |
catalogItem.setCountries(Stream.of(new Country("country", catalogItem)).collect(Collectors.toSet()));
|
|
200 |
catalogItem.setWrittenForms(Stream.of(new WrittenForm("written", catalogItem)).collect(Collectors.toSet()));
|
|
201 | 201 |
catalogItem.setCertainty(0); |
202 | 202 |
catalogItem.setLatitude(0.1); |
203 | 203 |
catalogItem.setLongitude(0.2); |
... | ... | |
206 | 206 |
CatalogItem oldCatalogItem = new CatalogItem(); |
207 | 207 |
oldCatalogItem.setId(id); |
208 | 208 |
oldCatalogItem.setName("old"); |
209 |
oldCatalogItem.setBibliography(Set.of(new Bibliography("old", oldCatalogItem)));
|
|
210 |
oldCatalogItem.setTypes(Set.of(typeOld));
|
|
211 |
oldCatalogItem.setAlternativeNames(Set.of(new AlternativeName("old", oldCatalogItem)));
|
|
212 |
oldCatalogItem.setCountries(Set.of(new Country("old", oldCatalogItem)));
|
|
213 |
oldCatalogItem.setWrittenForms(Set.of(new WrittenForm("old", catalogItem)));
|
|
209 |
oldCatalogItem.setBibliography(Stream.of(new Bibliography("old", oldCatalogItem)).collect(Collectors.toSet()));
|
|
210 |
oldCatalogItem.setTypes(Stream.of(typeOld).collect(Collectors.toSet()));
|
|
211 |
oldCatalogItem.setAlternativeNames(Stream.of(new AlternativeName("old", oldCatalogItem)).collect(Collectors.toSet()));
|
|
212 |
oldCatalogItem.setCountries(Stream.of(new Country("old", oldCatalogItem)).collect(Collectors.toSet()));
|
|
213 |
oldCatalogItem.setWrittenForms(Stream.of(new WrittenForm("old", catalogItem)).collect(Collectors.toSet()));
|
|
214 | 214 |
oldCatalogItem.setCertainty(10); |
215 | 215 |
oldCatalogItem.setLatitude(10.1); |
216 | 216 |
oldCatalogItem.setLongitude(10.2); |
... | ... | |
232 | 232 |
CatalogItem capturedCatalogItem = argumentCaptor.getValue(); |
233 | 233 |
|
234 | 234 |
assertThat(capturedCatalogItem).isEqualTo(catalogItem); |
235 |
assertThat(capturedCatalogItem.getCertainty()).isEqualTo(catalogItem.getCertainty()); |
|
236 |
assertThat(capturedCatalogItem.getLatitude()).isEqualTo(catalogItem.getLatitude()); |
|
237 |
assertThat(capturedCatalogItem.getLongitude()).isEqualTo(catalogItem.getLongitude()); |
|
238 |
assertThat(capturedCatalogItem.getDescription()).isEqualTo(catalogItem.getDescription()); |
|
239 |
assertThat(capturedCatalogItem.getTypes().stream().map(Type::getType).collect(Collectors.toSet())).isEqualTo(catalogItem.getTypes().stream().map(Type::getType).collect(Collectors.toSet())); |
|
240 |
assertThat(capturedCatalogItem.getAlternativeNames().stream().map(AlternativeName::getName).collect(Collectors.toSet())).isEqualTo(catalogItem.getAlternativeNames().stream().map(AlternativeName::getName).collect(Collectors.toSet())); |
|
241 |
assertThat(capturedCatalogItem.getCountries().stream().map(Country::getName).collect(Collectors.toSet())).isEqualTo(catalogItem.getCountries().stream().map(Country::getName).collect(Collectors.toSet())); |
|
242 |
assertThat(capturedCatalogItem.getBibliography().stream().map(Bibliography::getSource).collect(Collectors.toSet())).isEqualTo(catalogItem.getBibliography().stream().map(Bibliography::getSource).collect(Collectors.toSet())); |
|
243 |
assertThat(capturedCatalogItem.getWrittenForms().stream().map(WrittenForm::getForm).collect(Collectors.toSet())).isEqualTo(catalogItem.getWrittenForms().stream().map(WrittenForm::getForm).collect(Collectors.toSet())); |
|
235 | 244 |
} |
236 | 245 |
|
237 | 246 |
@Test |
Také k dispozici: Unified diff
Added orphan removal to catalog item
re #9492