Files

File: src/main/java/com/paymentlink/repository/TranslationRepository.java

1 package com.paymentlink.repository;
2
3 import com.paymentlink.model.entity.Translation;
4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.Query;
6 import org.springframework.data.repository.query.Param;
7 import org.springframework.stereotype.Repository;
8
9 import java.util.List;
10 import java.util.Optional;
11
12 @Repository
13 public interface TranslationRepository extends JpaRepository<Translation, Long> {
14
15 Optional<Translation> findByEntityTypeAndEntityIdAndFieldNameAndLanguageCode(
16 String entityType, String entityId, String fieldName, String languageCode);
17
18 List<Translation> findByEntityTypeAndEntityIdAndLanguageCode(
19 String entityType, String entityId, String languageCode);
20
21 List<Translation> findByEntityTypeAndEntityId(String entityType, String entityId);
22
23 @Query("SELECT t FROM Translation t WHERE t.entityType = :entityType " +
24 "AND t.entityId IN :entityIds AND t.languageCode = :languageCode")
25 List<Translation> findBulkTranslations(
26 @Param("entityType") String entityType,
27 @Param("entityIds") List<String> entityIds,
28 @Param("languageCode") String languageCode);
29
30 void deleteByEntityTypeAndEntityId(String entityType, String entityId);
31 }
32