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 不保证键的顺序,因此每次调用都会 return result-set 以不同的顺序。
您可以通过以下方式将您的 result-set 映射到案例 class:
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()
}
您可以关注 this example 以了解更多信息。
我正在使用 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 不保证键的顺序,因此每次调用都会 return result-set 以不同的顺序。
您可以通过以下方式将您的 result-set 映射到案例 class:
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()
}
您可以关注 this example 以了解更多信息。