Projekt

Obecné

Profil

« Předchozí | Další » 

Revize ba120f65

Přidáno uživatelem Jakub Šmíd před asi 2 roky(ů)

Added orphan removal to catalog item

re #9492

Zobrazit rozdíly:

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