Skip to content

Commit d04cf4f

Browse files
authored
DAVE-767 (#407)
* add Cache for OptionsmenueSettings * add new index to kalendertag * add logging * add cache for auffaelligetage * update logging * fix drop index * add serializable * add serializable
1 parent a6e9e5f commit d04cf4f

File tree

9 files changed

+90
-10
lines changed

9 files changed

+90
-10
lines changed

src/main/java/de/muenchen/dave/configuration/CachingConfiguration.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ public class CachingConfiguration {
3232

3333
public static final String READ_ZAEHLSTELLE_DTO = "READ_ZAEHLSTELLE_DTO";
3434

35+
public static final String OPTIONSMENUE_SETTINGS_FOR_MESSSTELLEN = "OPTIONSMENUE_SETTINGS_FOR_MESSSTELLEN";
36+
37+
public static final String AUFFAELLIGETAGE_FOR_MESSSTELLE = "AUFFAELLIGETAGE_FOR_MESSSTELLE";
38+
3539
@Value("${hazelcast.instance:data_hazl_instance}")
3640
public String hazelcastInstanceName;
3741
@Value("${hazelcast.group-name:data_hazl_group}")
@@ -108,6 +112,8 @@ private void mapConfig(final Config config) {
108112
config.addMapConfig(this.getMapConfig(LADE_PROCESSED_ZAEHLDATEN, this.maxIdleTimeSecondsZaehldaten));
109113
config.addMapConfig(this.getMapConfig(LADE_ZAEHLDATEN_ZEITREIHE_DTO, this.maxIdleTimeSecondsZaehldaten));
110114
config.addMapConfig(this.getMapConfig(READ_ZAEHLSTELLE_DTO, this.maxIdleTimeSecondsZaehldaten));
115+
config.addMapConfig(this.getMapConfig(OPTIONSMENUE_SETTINGS_FOR_MESSSTELLEN, this.maxIdleTimeSecondsZaehldaten));
116+
config.addMapConfig(this.getMapConfig(AUFFAELLIGETAGE_FOR_MESSSTELLE, this.maxIdleTimeSecondsZaehldaten));
111117
}
112118

113119
private MapConfig getMapConfig(final String name, final int maxIdleTime) {

src/main/java/de/muenchen/dave/domain/Kalendertag.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
@Table(
1818
indexes = {
1919
@Index(
20-
name = "index_kalendertag_datum ",
21-
columnList = "datum"
20+
name = "index_combined_datum_tagestyp ",
21+
columnList = "datum, tagestyp"
2222
),
2323
@Index(
2424
name = "index_kalendertag_next_start_date ",

src/main/java/de/muenchen/dave/domain/dtos/OptionsmenueSettingsDTO.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
import de.muenchen.dave.domain.enums.Fahrzeugklasse;
44
import de.muenchen.dave.domain.enums.ZaehldatenIntervall;
5+
import java.io.Serializable;
56
import java.util.List;
67
import lombok.Data;
78

89
@Data
9-
public class OptionsmenueSettingsDTO {
10+
public class OptionsmenueSettingsDTO implements Serializable {
1011

1112
private Fahrzeugklasse fahrzeugklasse;
1213

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package de.muenchen.dave.domain.dtos.messstelle;
22

3+
import java.io.Serializable;
34
import java.time.LocalDate;
45
import java.util.List;
56
import lombok.Data;
67

78
@Data
8-
public class AuffaelligeTageDTO {
9+
public class AuffaelligeTageDTO implements Serializable {
910
private List<LocalDate> auffaelligeTage;
1011
}

src/main/java/de/muenchen/dave/repositories/elasticsearch/MessstelleIndex.java

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,46 @@
1212

1313
public interface MessstelleIndex extends ElasticsearchRepository<Messstelle, String> {
1414

15-
@CacheEvict(value = { CachingConfiguration.SUCHE_ERHEBUNGSSTELLE, CachingConfiguration.SUCHE_ERHEBUNGSSTELLE_DATENPORTAL }, allEntries = true)
15+
@CacheEvict(
16+
value = { CachingConfiguration.SUCHE_ERHEBUNGSSTELLE, CachingConfiguration.SUCHE_ERHEBUNGSSTELLE_DATENPORTAL,
17+
CachingConfiguration.OPTIONSMENUE_SETTINGS_FOR_MESSSTELLEN },
18+
allEntries = true
19+
)
1620
void deleteAll();
1721

18-
@CacheEvict(value = { CachingConfiguration.SUCHE_ERHEBUNGSSTELLE, CachingConfiguration.SUCHE_ERHEBUNGSSTELLE_DATENPORTAL }, allEntries = true)
22+
@CacheEvict(
23+
value = { CachingConfiguration.SUCHE_ERHEBUNGSSTELLE, CachingConfiguration.SUCHE_ERHEBUNGSSTELLE_DATENPORTAL,
24+
CachingConfiguration.OPTIONSMENUE_SETTINGS_FOR_MESSSTELLEN },
25+
allEntries = true
26+
)
1927
void deleteAll(Iterable<? extends Messstelle> var1);
2028

21-
@CacheEvict(value = { CachingConfiguration.SUCHE_ERHEBUNGSSTELLE, CachingConfiguration.SUCHE_ERHEBUNGSSTELLE_DATENPORTAL }, allEntries = true)
29+
@CacheEvict(
30+
value = { CachingConfiguration.SUCHE_ERHEBUNGSSTELLE, CachingConfiguration.SUCHE_ERHEBUNGSSTELLE_DATENPORTAL,
31+
CachingConfiguration.OPTIONSMENUE_SETTINGS_FOR_MESSSTELLEN },
32+
allEntries = true
33+
)
2234
void deleteById(String var1);
2335

24-
@CacheEvict(value = { CachingConfiguration.SUCHE_ERHEBUNGSSTELLE, CachingConfiguration.SUCHE_ERHEBUNGSSTELLE_DATENPORTAL }, allEntries = true)
36+
@CacheEvict(
37+
value = { CachingConfiguration.SUCHE_ERHEBUNGSSTELLE, CachingConfiguration.SUCHE_ERHEBUNGSSTELLE_DATENPORTAL,
38+
CachingConfiguration.OPTIONSMENUE_SETTINGS_FOR_MESSSTELLEN },
39+
allEntries = true
40+
)
2541
void delete(Messstelle var1);
2642

27-
@CacheEvict(value = { CachingConfiguration.SUCHE_ERHEBUNGSSTELLE, CachingConfiguration.SUCHE_ERHEBUNGSSTELLE_DATENPORTAL }, allEntries = true)
43+
@CacheEvict(
44+
value = { CachingConfiguration.SUCHE_ERHEBUNGSSTELLE, CachingConfiguration.SUCHE_ERHEBUNGSSTELLE_DATENPORTAL,
45+
CachingConfiguration.OPTIONSMENUE_SETTINGS_FOR_MESSSTELLEN },
46+
allEntries = true
47+
)
2848
<S extends Messstelle> S save(S var1);
2949

30-
@CacheEvict(value = { CachingConfiguration.SUCHE_ERHEBUNGSSTELLE, CachingConfiguration.SUCHE_ERHEBUNGSSTELLE_DATENPORTAL }, allEntries = true)
50+
@CacheEvict(
51+
value = { CachingConfiguration.SUCHE_ERHEBUNGSSTELLE, CachingConfiguration.SUCHE_ERHEBUNGSSTELLE_DATENPORTAL,
52+
CachingConfiguration.OPTIONSMENUE_SETTINGS_FOR_MESSSTELLEN },
53+
allEntries = true
54+
)
3155
<S extends Messstelle> Iterable<S> saveAll(Iterable<S> var1);
3256

3357
Optional<Messstelle> findById(String var1);

src/main/java/de/muenchen/dave/repositories/relationaldb/UnauffaelligeTageRepository.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,53 @@
11
package de.muenchen.dave.repositories.relationaldb;
22

3+
import de.muenchen.dave.configuration.CachingConfiguration;
34
import de.muenchen.dave.domain.UnauffaelligerTag;
45
import de.muenchen.dave.domain.enums.TagesTyp;
56
import java.time.LocalDate;
67
import java.util.List;
78
import java.util.Optional;
89
import java.util.UUID;
10+
import org.springframework.cache.annotation.CacheEvict;
911
import org.springframework.data.jpa.repository.JpaRepository;
1012

1113
public interface UnauffaelligeTageRepository extends JpaRepository<UnauffaelligerTag, UUID> {
1214

15+
@CacheEvict(
16+
value = { CachingConfiguration.AUFFAELLIGETAGE_FOR_MESSSTELLE },
17+
allEntries = true
18+
)
19+
void deleteAll();
20+
21+
@CacheEvict(
22+
value = { CachingConfiguration.AUFFAELLIGETAGE_FOR_MESSSTELLE },
23+
allEntries = true
24+
)
25+
void deleteAll(Iterable<? extends UnauffaelligerTag> var1);
26+
27+
@CacheEvict(
28+
value = { CachingConfiguration.AUFFAELLIGETAGE_FOR_MESSSTELLE },
29+
allEntries = true
30+
)
31+
void deleteById(UUID var1);
32+
33+
@CacheEvict(
34+
value = { CachingConfiguration.AUFFAELLIGETAGE_FOR_MESSSTELLE },
35+
allEntries = true
36+
)
37+
void delete(UnauffaelligerTag var1);
38+
39+
@CacheEvict(
40+
value = { CachingConfiguration.AUFFAELLIGETAGE_FOR_MESSSTELLE },
41+
allEntries = true
42+
)
43+
<S extends UnauffaelligerTag> S save(S var1);
44+
45+
@CacheEvict(
46+
value = { CachingConfiguration.AUFFAELLIGETAGE_FOR_MESSSTELLE },
47+
allEntries = true
48+
)
49+
<S extends UnauffaelligerTag> List<S> saveAll(Iterable<S> var1);
50+
1351
List<UnauffaelligerTag> findByMstId(final String mstId);
1452

1553
Optional<UnauffaelligerTag> findFirstByMstIdOrderByKalendertagDatumDesc(final String mstId);

src/main/java/de/muenchen/dave/services/OptionsmenueSettingsService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package de.muenchen.dave.services;
22

3+
import de.muenchen.dave.configuration.CachingConfiguration;
34
import de.muenchen.dave.domain.dtos.OptionsmenueSettingsDTO;
45
import de.muenchen.dave.domain.mapper.OptionsmenueSettingsMapper;
56
import de.muenchen.dave.repositories.relationaldb.OptionsmenueSettingsRepository;
67
import java.util.List;
78
import lombok.RequiredArgsConstructor;
89
import lombok.extern.slf4j.Slf4j;
10+
import org.springframework.cache.annotation.Cacheable;
911
import org.springframework.stereotype.Service;
1012

1113
@Service
@@ -17,7 +19,9 @@ public class OptionsmenueSettingsService {
1719

1820
private final OptionsmenueSettingsMapper optionsmenueSettingsMapper;
1921

22+
@Cacheable(value = CachingConfiguration.OPTIONSMENUE_SETTINGS_FOR_MESSSTELLEN)
2023
public List<OptionsmenueSettingsDTO> getAllOptionsmenueSettingsForMessstellen() {
24+
log.debug("#getAllOptionsmenueSettingsForMessstellen");
2125
return optionsmenueSettingsRepository
2226
.findAll()
2327
.stream()

src/main/java/de/muenchen/dave/services/messstelle/MessstelleOptionsmenuService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package de.muenchen.dave.services.messstelle;
22

3+
import de.muenchen.dave.configuration.CachingConfiguration;
34
import de.muenchen.dave.domain.Kalendertag;
45
import de.muenchen.dave.domain.UnauffaelligerTag;
56
import de.muenchen.dave.domain.dtos.messstelle.AuffaelligeTageDTO;
@@ -10,6 +11,7 @@
1011
import java.util.List;
1112
import lombok.RequiredArgsConstructor;
1213
import lombok.extern.slf4j.Slf4j;
14+
import org.springframework.cache.annotation.Cacheable;
1315
import org.springframework.stereotype.Service;
1416

1517
@Service
@@ -20,7 +22,9 @@ public class MessstelleOptionsmenuService {
2022
private final KalendertagService kalendertagService;
2123
private final ValidierungService validierungService;
2224

25+
@Cacheable(value = CachingConfiguration.AUFFAELLIGETAGE_FOR_MESSSTELLE, key = "{#p0}")
2326
public AuffaelligeTageDTO getAuffaelligeTageForMessstelle(final String mstId) {
27+
log.debug("Zugriff auf #getAuffaelligeTageForMessstelle {}", mstId);
2428
final List<UnauffaelligerTag> unauffaelligeTageForMessstelle = unauffaelligeTageService.getUnauffaelligeTageForMessstelle(mstId);
2529
final List<LocalDate> unauffaelligeTage = unauffaelligeTageForMessstelle
2630
.stream()
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
DROP INDEX IF EXISTS index_kalendertag_datum;
2+
CREATE INDEX index_combined_datum_tagestyp ON kalendertag USING BTREE(datum, tagestyp);

0 commit comments

Comments
 (0)