我正在尝试在光滑的3.2中为简单表创建一个模式。我对scala很新,所以这可能是一个愚蠢的问题。当我尝试删除日期投影似乎工作正常,我能够运行选择查询罚款,但当我添加日期,我甚至无法编译代码。
以下是我的架构代码:
import slick.jdbc.OracleProfile.api._
import java.sql.Date
class User(tag: Tag)
extends slick.jdbc.OracleProfile.api.Table[(Long , String , Date)](tag, "USR") {
def usr_arch_dt : Rep[Date]= column[Date]("USR_ARCH_DT")
def usr_id : Rep[Long] = column[Long]("USR_ID", O.PrimaryKey)
def usr_subj_txt : Rep[String]= column[String]("USR_SUBJ_TXT")
def * : (Long, String, Date) =
(usr_id , usr_subj_txt , usr_arch_dt) // I see mentioned error here
}
我在Intellij中看到的异常或错误是:
Rep [Long]类型的表达式不符合预期类型Long。
如果我能够编译此代码,我希望基于类似
的日期范围进行搜索val filterQuery: Query[User, (Long, String , Date), Seq] =
ntfns.filter(_.usr_arch_dt > Calendar.getInstance().getTime )
谢谢!
答案 0 :(得分:1)
您的sudo yum install dos2unix
看起来有额外的def * : (Long, String, String, Date)
。
在日期搜索中,您的过滤查询无法正常工作String
附带有限的方法。 Slick的一个常见做法是在java.sql.Date
和功能更丰富的Joda Time之间创建一个隐式映射器:
java.sql.Date
这是一个相关的SO link。
答案 1 :(得分:0)
谢谢@Leo,额外的字符串是一个错字,我现在将其从问题中删除,以便其他人受益。下面的代码对我有用:
case class User(tag: Tag)
extends slick.jdbc.OracleProfile.api.Table[(Long , String , Date)](tag, "USR") {
def usr_arch_dt : Rep[Date]= column[Date]("USR_ARCH_DT")
def usr_id : Rep[Long] = column[Long]("USR_ID", O.PrimaryKey)
def usr_subj_txt : Rep[String]= column[String]("USR_SUBJ_TXT")
def * = (usr_id , usr_subj_txt , usr_arch_dt)
}
我仍然需要查看过滤器,我会尝试您的方法并让您知道结果。