我一直在試圖讓IDE項目識別Squeryl使用的子句。我已經將Squeryl * .jar添加到我的項目依賴項中,但仍然必須導入要使用的子項「From」的類。更具體地說,我不得不使用「import org.squeryl.dsl.boilerplate.FromSignatures」來擴展對象,以使「from」工作。這是一個奇怪的仍然可行的解決方案,但命令「像/選擇」蜜蜂進口..發生了什麼事情?我甚至tryed實現的選擇方法..Squeryl子句(from,select,like,where)在intellij中不工作
def select[R](r: =>R): R
object ExternalVendor extends FromSignatures{
def findAll = tx {
from(vendors)(s => select(s)) map(s => s) }
def select[R](r: =>R): R
//def select[QueryYield[_R]](r: =>QueryYield[_R]): QueryYield[_R]
}
,直到它給了我與 「R」 的問題說選(S)預計不會式 「QueryYield [_R]」 請幫助..
代碼:
package object models {
implicit val transactionFailures: Table[TransactionFailure] = LowkeySchema.transactionFailures
implicit val vendors: Table[ExternalVendor] = LowkeySchema.vendors
implicit val products: Table[Product] = LowkeySchema.products
}
trait Model[A] extends KeyedEntity[Long] { this: A =>
val id: Long = 0
def save(implicit table: Table[A]): Either[Throwable, String] = {
tx {
try {
table.insert(this)
Right("Domain object is saved successfully")
} catch {
case exception: Throwable => Left(exception)
}
}
}
}
abstract class ExternalVendor(val name: String, val url: String) extends Model[ExternalVendor]
object ExternalVendor extends FromSignatures{
def findAll = tx {
from(vendors)(s => select(s)) map(s => s) }
//def select[QueryYield[_R]](r: =>QueryYield[_R]): QueryYield[_R]
}
abstract class Product(val description: String,
val vendorName: String,
val basePrice: Double,
val plusPercent: Double)
extends Model[Product] {
def calculatePrice = basePrice + (basePrice * plusPercent/100)
}
object Product extends FromSignatures{
def findByDescription(description: String): Option[Product] =
tx {
products.where(p => p.description like description).headOption
}
}
我正在使用Squeryl_0.9.5。爲了解決intellij中的子句問題,我使用了PrimitivetypeMode'import org.squeryl.PrimitiveTypeMode._'我沒有收到像/ where/from /等子句的任何語法錯誤。感謝所有幫助! – BZmart