[JAVA] [Spring] [MyBatis] Verwenden Sie GROUP BY in SQL Builder

Anfrage

Stichprobe

Angenommen, Sie haben die folgende Tabelle "Geschäfte"

shop_cd prefecture
0001 Präfektur Kanagawa
0002 Präfektur Kanagawa
0002 Präfektur Kanagawa
0003 Präfektur Kanagawa
0003 Präfektur Kanagawa
0004 Tokio

Ich möchte eine eindeutige Liste von Geschäftscodes, in denen "Präfektur Kanagawa" angegeben ist.

public interface ShopMapper {
  /**
   *Holen Sie sich eine Liste der Geschäftscodes, indem Sie die Präfektur angeben.
   *
   * @return List<Map<String, String>>
   *Karte pro Ergebnis
   *     - prefecture:Angegebener Präfekturname (Japanisch)
   *     - shopCd:Site-Code
   */
  @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();
    }
  }
}

Ich habe @Results und @Result angegeben, damit die Suchergebnisse in Map abgerufen werden können.

Recommended Posts

[JAVA] [Spring] [MyBatis] Verwenden Sie GROUP BY in SQL Builder
Verwenden Sie Ungleichheitsvergleichsoperatoren in MyBatis SQL
Verwenden Sie Interceptor im Frühjahr
Verwenden Sie OpenCV mit Java
Verwenden Sie PreparedStatement in Java
Aufrufen und Verwenden der API in Java (Spring Boot)
Verwendung des Java-Aufzählungstyps (Enum) in Mapper XML von MyBatis
Wie man Lombok im Frühling benutzt
Verwenden wir Twilio in Java! (Einführung)
[Java] Verwenden Sie nicht "+" im Anhang!
Verwenden Sie zusammengesetzte Schlüssel in Java Maps.
Wie verwende ich Klassen in Java?
Verwenden Sie Stream in Java?
[Java Spring MVC] Ich möchte DI in meiner eigenen Klasse verwenden
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
Verwenden Sie OpenCV_Contrib (ArUco) mit Java! (Teil 2-Programmierung)
Doppelte Karte sortiert nach Schlüssel in Java
Schritt für Schritt: Java + gradle + mybatis + postgresql + log4j
Erstellen Sie mit IntelliJ ein Java Spring Boot-Projekt
Verwenden Sie "Rhino", das JavaScript in Java ausführt
Verwenden Sie die DynamoDB-Abfragemethode mit Spring Boot
Wechseln der Beans mit Profilanmerkung im Frühjahr
[* Java *] Ich habe am JJUG CCC 2019 Spring teilgenommen
Frühling Java
Verwenden Sie OpenCV_Contrib (ArUco) mit Java! (Teil 1-Build) (OpenCV-3.4.4)
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
[Java] Verwendung von final in der lokalen Variablendeklaration
Servlet-Filter mit Spring Boot verwenden [Spring Boot 1.x, 2.x kompatibel]
Java-Tipps - Erstellen Sie mit Gradle ein Spring Boot-Projekt
[Java] Beurteilung durch Eingabe von Zeichen in das Terminal
Methodenname der Methodenkette in Java Builder + α
Ersetzen von Systemumgebungsvariablen durch Reflektion in Java