Skip to content
Snippets Groups Projects
Commit d31f6852 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#338 - clean tags only if not referenced by any transaction or template

parent 2ad6d193
No related branches found
No related tags found
No related merge requests found
package de.deadlocker8.budgetmaster.tags;
import de.deadlocker8.budgetmaster.ProgramArgs;
import de.deadlocker8.budgetmaster.templates.TemplateRepository;
import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -17,12 +18,14 @@ public class TagScheduler
private TagRepository tagRepository;
private TransactionRepository transactionRepository;
private TemplateRepository templateRepository;
@Autowired
public TagScheduler(TagRepository tagRepository, TransactionRepository transactionRepository)
public TagScheduler(TagRepository tagRepository, TransactionRepository transactionRepository, TemplateRepository templateRepository)
{
this.tagRepository = tagRepository;
this.transactionRepository = transactionRepository;
this.templateRepository = templateRepository;
}
@Scheduled(fixedRate = 15*60*1000)
......@@ -36,7 +39,8 @@ public class TagScheduler
List<Tag> tags = tagRepository.findAll();
for(Tag tag : tags)
{
if(transactionRepository.findAllByTagsContaining(tag).isEmpty())
if(transactionRepository.findAllByTagsContaining(tag).isEmpty() &&
templateRepository.findAllByTagsContaining(tag).isEmpty())
{
tagRepository.delete(tag);
}
......
package de.deadlocker8.budgetmaster.templates;
import de.deadlocker8.budgetmaster.accounts.Account;
import de.deadlocker8.budgetmaster.tags.Tag;
import de.deadlocker8.budgetmaster.transactions.Transaction;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
......@@ -12,4 +14,6 @@ public interface TemplateRepository extends JpaRepository<Template, Integer>, Jp
List<Template> findAllByAccount(Account account);
List<Template> findAllByOrderByTemplateNameAsc();
List<Template> findAllByTagsContaining(Tag tag);
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment