diff --git a/src/main/java/ch/usi/si/seart/model/Language.java b/src/main/java/ch/usi/si/seart/model/Language.java index 7fc96a7c..501b187e 100644 --- a/src/main/java/ch/usi/si/seart/model/Language.java +++ b/src/main/java/ch/usi/si/seart/model/Language.java @@ -12,6 +12,7 @@ import org.hibernate.Hibernate; import org.hibernate.annotations.Immutable; +import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -58,14 +59,31 @@ public class Language { Set metrics = new HashSet<>(); @PrimaryKeyJoinColumn - @OneToOne(mappedBy = "language") + @OneToOne( + mappedBy = "language", + cascade = { + CascadeType.PERSIST, + CascadeType.MERGE, + CascadeType.REFRESH, + CascadeType.DETACH + } + ) Statistics statistics; @PrimaryKeyJoinColumn - @OneToOne(mappedBy = "language") + @OneToOne( + mappedBy = "language", + cascade = { + CascadeType.PERSIST, + CascadeType.MERGE, + CascadeType.REFRESH, + CascadeType.DETACH + } + ) Progress progress; @Getter + @Builder @NoArgsConstructor @AllArgsConstructor @Entity @@ -82,11 +100,13 @@ public static class Statistics { @JoinColumn(name = "language_id") Language language; + @Builder.Default @Column(name = "mined") - Long mined; + Long mined = 0L; + @Builder.Default @Column(name = "analyzed") - Long analyzed; + Long analyzed = 0L; @Override public boolean equals(Object o) { diff --git a/src/main/java/ch/usi/si/seart/service/LanguageService.java b/src/main/java/ch/usi/si/seart/service/LanguageService.java index 35866e3e..43292f01 100644 --- a/src/main/java/ch/usi/si/seart/service/LanguageService.java +++ b/src/main/java/ch/usi/si/seart/service/LanguageService.java @@ -124,13 +124,18 @@ public void afterPropertiesSet() { ), () -> { log.debug("Initializing progress for {} to default start date...", name); - languageProgressRepository.save( - Language.Progress.builder() - .id(language.getId()) - .language(language) - .checkpoint(defaultCheckpoint) - .build() - ); + Language.Progress progress = Language.Progress.builder() + .id(language.getId()) + .language(language) + .checkpoint(defaultCheckpoint) + .build(); + Language.Statistics statistics = Language.Statistics.builder() + .id(language.getId()) + .language(language) + .build(); + language.setProgress(progress); + language.setStatistics(statistics); + languageRepository.save(language); }); } }