我正在将项目从旧的scala版本升级到最新版本,并且我目前拥有squeryl 0.9.4并将其升级到0.9.13。 我的项目已编译并运行良好,但是我从数据库中获取数据时遇到了问题。
我的查询是
**
val order: Option[OrderData] = {
from(OrderSchema.orders) { o => {
where(o.transactionId === transactionId) select(o)
}} headOption
}
**
此查询生成的查询在select语句中没有任何列名。
从Postgresql日志中获取的生成的SQl:
绑定到S_5 2018-12-13 17:28:06.705 EET [3408]日志:执行S_5:选择 从 “ OrderProductData”“ OrderProductData1” 哪里 (“ OrderProductData1”。“ transactionId” = $ 1) 2018-12-13 17:28:06.705 EET [3408]详细信息:参数:$ 1 ='11000015'
使用旧版本生成的旧SQL是
绑定到 2018-12-14 11:51:01.221 EET [3231]日志:执行:选择 将“ OrderProductData16”。“名称”作为“ OrderProductData16_name”, “ OrderProductData16”。“数量”作为“ OrderProductData16_quantity”, “ OrderProductData16”。“ lastModified”作为“ OrderProductData16_lastModified”, “ OrderProductData16”。“ vatPercent”作为“ OrderProductData16_vatPercent”, “ OrderProductData16”。“ priceExVat”作为“ OrderProductData16_priceExVat”, “ OrderProductData16”。“ totalPrice”作为“ OrderProductData16_totalPrice”, “ OrderProductData16”。“ id”作为“ OrderProductData16_id”, “ OrderProductData16”。“状态”为“ OrderProductData16_status”, “ OrderProductData16”。“ productEan”作为“ OrderProductData16_productEan”, “ OrderProductData16”。“ productId”作为“ OrderProductData16_productId”, “ OrderProductData16”。“ unitPrice”作为“ OrderProductData16_unitPrice”, “ OrderProductData16”。“ priceVat”作为“ OrderProductData16_priceVat”, 将“ OrderProductData16”。“折扣”作为“ OrderProductData16_discount”, “ OrderProductData16”。“ owQuantity”作为“ OrderProductData16_owQuantity”, “ OrderProductData16”。“ transactionId”作为“ OrderProductData16_transactionId” 从 “ OrderProductData”“ OrderProductData16” 哪里 (“ OrderProductData16”。“ transactionId” = $ 1) 2018-12-14 11:51:01.221 EET [3231]详细信息:参数:$ 1 ='11000015' 如您所见,查询中没有任何列,因此我得到的结果带有模型类中定义的默认值。
我没有更改配置中的任何内容,因为它已编译并运行。 我只是在架构类中更改了以下初始化代码。
新代码是:
val myTables = new scala.collection.mutable.ArrayBuffer[Table[_]]
override protected def table[T](name: String)(implicit manifestT: Manifest[T], ked: OptionalKeyedEntityDef[T,_]): Table[T] = {
val t = super.table[T](name)(manifestT,ked)
myTables.append(t)
t
}
旧代码为:
val myTables = new scala.collection.mutable.ArrayBuffer[Table[_]]
override protected def table[T](name: String)(implicit manifestT: Manifest[T]): Table[T] = {
val t = super.table[T](name)(manifestT)
myTables.append(t)
t
}