[JAVA] [Spring] [MyBatis] Utiliser GROUP BY dans SQL Builder

demande

échantillon

Supposons que vous ayez le tableau "boutiques" suivant

shop_cd prefecture
0001 Préfecture de Kanagawa
0002 Préfecture de Kanagawa
0002 Préfecture de Kanagawa
0003 Préfecture de Kanagawa
0003 Préfecture de Kanagawa
0004 Tokyo

Je veux une liste unique de codes de magasin qui spécifient "Kanagawa Prefecture".

public interface ShopMapper {
  /**
   *Obtenez une liste des codes de magasin en spécifiant la préfecture.
   *
   * @return List<Map<String, String>>
   *Carte par résultat
   *     - prefecture:Nom de préfecture spécifié (japonais)
   *     - shopCd:le code du site
   */
  @SelectProvider(type = SqlProvider.class, method = "getShopCodesByPrefecture")
  @Results(id = "ShopCodesByPrefecture", value = {
          @Result(column = "shop_cd", property = "shopCd"),
          @Result(column = "prefecture", property = "prefecture"),
  })
  List<Map<String, String>> getShopCodesByPrefecture(String brandCd, String prefecture);

  class SqlProvider {
    public String getShopCodesByPrefecture(String prefecture) {
      SQL sql = new SQL() {
        {
          SELECT("shop_cd", "prefecture");
          FROM("shops");
          WHERE("shops.prefecture = #{prefecture}");
          GROUP_BY("shop_cd");
          ORDER_BY("shop_cd ASC");
        }
      };
      return sql.toString();
    }
  }
}

J'ai spécifié @Results et @Result afin que les résultats de la recherche puissent être obtenus dans Map.

Recommended Posts

[JAVA] [Spring] [MyBatis] Utiliser GROUP BY dans SQL Builder
Utiliser des opérateurs de comparaison d'inégalités dans MyBatis SQL
Utilisez Interceptor au printemps
Utiliser OpenCV avec Java
Utiliser PreparedStatement en Java
Comment appeler et utiliser l'API en Java (Spring Boot)
Comment utiliser le type d'énumération Java (Enum) dans Mapper XML de MyBatis
Comment utiliser Lombok au printemps
Utilisons Twilio en Java! (Introduction)
[Java] N'utilisez pas "+" dans append!
Utilisez des clés composites dans Java Maps.
Comment utiliser les classes en Java?
Utilisez-vous Stream en Java?
[Java Spring MVC] Je souhaite utiliser DI dans ma propre classe
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Utilisez OpenCV_Contrib (ArUco) avec Java! (Partie 2-Programmation)
Carte en double triée par clé en Java
Pas à pas: Java + gradle + mybatis + postgresql + log4j
Créer un projet Java Spring Boot avec IntelliJ
Utilisez "Rhino" qui exécute JavaScript en Java
Utiliser la méthode de requête DynamoDB avec Spring Boot
Changement de beans avec annotation de profil dans Spring
[* Java *] J'ai participé au JJUG CCC 2019 Spring
Spring Java
Utilisez OpenCV_Contrib (ArUco) avec Java! (Partie 1-Construire) (OpenCV-3.4.4)
Comment utiliser MyBatis2 (iBatis) avec Spring Boot 1.4 (Spring 4)
[Java] Utilisation de final dans la déclaration de variable locale
Utiliser le filtre de servlet avec Spring Boot [compatible Spring Boot 1.x, 2.x]
Conseils Java - Créez un projet Spring Boot avec Gradle
[Java] Jugement en saisissant des caractères dans le terminal
Nom de méthode de la chaîne de méthodes dans Java Builder + α
Remplacement des variables d'environnement système par réflexion en Java