簡體   English   中英

ScalikeJDBC結果字符串中列的錯誤順序

[英]ScalikeJDBC wrong order of columns in the result string

我正在使用ScalikeJDBC來獲取查詢結果。 但是,問題在於輸出中的列順序不符合我在查詢中定義的順序。 對我來說,列的順序非常重要。 那么如何解決?

我的查詢如下所示:

def getAllRecords():List[String] = {
    sql"SELECT random_pk,random_string, code,random_bool,random_int,random_float,random_double, random_enum,random_date,random_decimal,update_database_time,update_database_time_tz,random_money FROM TestAllData"
      .map(records => records.toMap.values.mkString(", "))
      .list()
      .apply()
}

結果中的列順序如下所示:

random_float, random_money, random_int,random_string,update_database_time_tz,code,random_date,update_database_time,random_pk,random_bool,random_enum,random_decimal,random_double

您正在將結果記錄映射到Map。 映射不保證鍵的順序,因此每個調用將以不同的順序返回結果集。

您可以通過以下方式將結果集映射到案例類:

case class ResultSet(
random_pk_string: Option[String],
random_string: Option[String],
code: Option[String],
random_bool: Option[Boolean],
random_int: Option[Int],
random_float: Option[Float],
random_double: Option[Double],
random_enum: Option[String],
random_date: Option[String],
random_decimal: Option[Double],
update_database_time: Option[String],
update_database_time_tz: Option[String],
random_money:Int)

def getAllRecords():List[String] = {
    sql"SELECT random_pk],random_string], code],random_bool],random_int],random_float],random_double], random_enum],random_date],random_decimal],update_database_time],update_database_time_tz],random_money FROM TestAllData"
      .map(rs => ResultSet(
        rs.string("random_pk_string"),
        rs.string("random_string"),
        rs.string("code"),
        rs.boolean("random_bool"),
        rs.int("random_int"),
        rs.float("random_float"),
        rs.double("random_double"),
        rs.string("random_enum"),
        rs.string("random_date"),
        rs.double("random_decimal"),
        rs.string("update_database_time"),
        rs.string("update_database_time_tz"),
        rs.int("random_money")))
      .list.apply()
}

您可以按照以下示例進行操作以獲得更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM