scala – value ===不是类型参数TKey的成员(使用Squeryl)
发布时间:2020-12-16 18:28:03 所属栏目:安全 来源:网络整理
导读:我正在尝试使用优秀的squeryl ORM框架编写一个简单的BaseDao类. 但是,当使用通用类型键时,我遇到了一个问题.当我尝试在我的通用BaseDao类中使用’===’运算符时,我收到编译错误.编译错误是:value ===不是类型参数TKey的成员 我的dao类及其麻烦的方法定义为
我正在尝试使用优秀的squeryl ORM框架编写一个简单的BaseDao类.
但是,当使用通用类型键时,我遇到了一个问题.当我尝试在我的通用BaseDao类中使用’===’运算符时,我收到编译错误.编译错误是:value ===不是类型参数TKey的成员 我的dao类及其麻烦的方法定义为: import org.squeryl.PrimitiveTypeMode._ import org.squeryl._ abstract class BaseDao[TKey,T <: BaseEntity[TKey]](val table: Table[T]) { def delete(entity: T) : Boolean = { table.deleteWhere(record => record.id === entity.id) //This is where I get the compile error } } BaseEntity定义为: abstract class BaseEntity[TKey] extends KeyedEntity[TKey] 我也在我的Dao类中导入PrimitiveTypeMode … 运算符在此处的squeryl源中定义:https://github.com/max-l/Squeryl/blob/master/src/main/scala/org/squeryl/dsl/TypedExpression.scala 解决方法
我不认为这可以在Squeryl中完成. Squeryl不支持通用类型的键 – 它使用Java反射来获取它们的类型,它在运行时被擦除,因此认为它们是Object类型.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |