Я обновляю свой проект с более старой версии Scala до последней, и сейчас у меня есть squeryl 0.9.4, и я обновляю его до 0.9.13.Мой проект скомпилирован и работает нормально, но я столкнулся с проблемой при извлечении данных из базы данных.
Мой запрос
**
val order: Option[OrderData] = {
from(OrderSchema.orders) { o => {
where(o.transactionId === transactionId) select(o)
}} headOption
}
**
Этот запрос генерирует запрос без имени столбца в операторе выбора.
Сгенерированный SQl, полученный из журналов postgresql:
привязка к S_5 2018-12-13 17: 28: 06.705 EET [3408] LOG: выполнить S_5: Выбрать из «OrderProductData» »OrderProductData1 "Где (" OrderProductData1 ". "ActionId" = $ 1) 2018-12-13 17: 28: 06.705 EET [3408] ДЕТАЛИ: параметры: $ 1 = '11000015'
Старый SQL, созданный с помощьюстарая версия -
, привязка к 2018-12-14 11: 51: 01.221 EET [3231] LOG: execute: выберите «OrderProductData16». «name» в качестве «OrderProductData16_name», «OrderProductData16». "количество »как« OrderProductData16_quantity »,« OrderProductData16 ».« lastModified »как« OrderProductData16_lastModified »,« OrderProductData16 ».« vatPercent »как« OrderProductData16_vatPercent »,« OrderProductData16 ».как "OrderProductData16_totalPrice", "OrderProductData16". "id" как "OrderProductData16_id", "OrderProductData16". "status" как "OrderProductData16_status", "OrderProductData16". "productEan »как« OrderProductData16_productEan »,« OrderProductData16 ».« productId »как« OrderProductData16_productId »,« OrderProductData16 ».« unitPrice »как« OrderProductData16_unitPrice »,« OrderProductData16 »цена продукта»как «OrderProductData16_discount», «OrderProductData16». «owQuantity» как «OrderProductData16_owQuantity», «OrderProductData16».-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
}