Create java.util.Date TypeMapper. And add the currentDate method.

This commit is contained in:
shimamoto
2013-06-23 20:46:08 +09:00
parent 83ff171782
commit 4326f34ef5
12 changed files with 68 additions and 74 deletions

View File

@@ -2,15 +2,15 @@ package model
import scala.slick.driver.H2Driver.simple._
object Accounts extends Table[Account]("ACCOUNT") {
object Accounts extends Table[Account]("ACCOUNT") with Functions {
def userName = column[String]("USER_NAME", O PrimaryKey)
def mailAddress = column[String]("MAIL_ADDRESS")
def password = column[String]("PASSWORD")
def isAdmin = column[Boolean]("ADMINISTRATOR")
def url = column[String]("URL")
def registeredDate = column[java.sql.Timestamp]("REGISTERED_DATE") // TODO convert java.util.Date later
def updatedDate = column[java.sql.Timestamp]("UPDATED_DATE")
def lastLoginDate = column[java.sql.Timestamp]("LAST_LOGIN_DATE")
def registeredDate = column[java.util.Date]("REGISTERED_DATE")
def updatedDate = column[java.util.Date]("UPDATED_DATE")
def lastLoginDate = column[java.util.Date]("LAST_LOGIN_DATE")
def * = userName ~ mailAddress ~ password ~ isAdmin ~ url.? ~ registeredDate ~ updatedDate ~ lastLoginDate.? <> (Account, Account.unapply _)
}
@@ -20,16 +20,7 @@ case class Account(
password: String,
isAdmin: Boolean,
url: Option[String],
registeredDate: java.sql.Timestamp,
updatedDate: java.sql.Timestamp,
lastLoginDate: Option[java.sql.Timestamp]
registeredDate: java.util.Date,
updatedDate: java.util.Date,
lastLoginDate: Option[java.util.Date]
)
class AccountDao {
import Database.threadLocalSession
def insert(o: Account): Long = Accounts insert o
def select(key: String): Option[Account] = Query(Accounts) filter(_.userName is key.bind) firstOption
}

View File

@@ -0,0 +1,17 @@
package model
import scala.slick.lifted.MappedTypeMapper
protected[model] trait Functions {
// java.util.Date TypeMapper
implicit val dateTypeMapper = MappedTypeMapper.base[java.util.Date, java.sql.Timestamp](
d => new java.sql.Timestamp(d.getTime),
t => new java.util.Date(t.getTime)
)
/**
* Returns system date.
*/
def currentDate = new java.util.Date()
}

View File

@@ -9,7 +9,7 @@ object IssueId extends Table[(String, String, Int)]("ISSUE_ID") {
def * = userName ~ repositoryName ~ issueId
}
object Issues extends Table[Issue]("ISSUE") {
object Issues extends Table[Issue]("ISSUE") with Functions {
def userName = column[String]("USER_NAME", O PrimaryKey)
def repositoryName = column[String]("REPOSITORY_NAME", O PrimaryKey)
def issueId = column[Int]("ISSUE_ID", O PrimaryKey)
@@ -19,8 +19,8 @@ object Issues extends Table[Issue]("ISSUE") {
def title = column[String]("TITLE")
def content = column[String]("CONTENT")
def closed = column[Boolean]("CLOSED")
def registeredDate = column[java.sql.Date]("REGISTERED_DATE") // TODO convert java.util.Date later
def updatedDate = column[java.sql.Date]("UPDATED_DATE")
def registeredDate = column[java.util.Date]("REGISTERED_DATE")
def updatedDate = column[java.util.Date]("UPDATED_DATE")
def * = userName ~ repositoryName ~ issueId ~ openedUserName ~ milestoneId.? ~ assignedUserName.? ~ title ~ content.? ~ closed ~ registeredDate ~ updatedDate <> (Issue, Issue.unapply _)
}
@@ -34,5 +34,5 @@ case class Issue(
title: String,
content: Option[String],
closed: Boolean,
registeredDate: java.sql.Date,
updatedDate: java.sql.Date)
registeredDate: java.util.Date,
updatedDate: java.util.Date)

View File

@@ -2,17 +2,17 @@ package model
import scala.slick.driver.H2Driver.simple._
object Milestones extends Table[Milestone]("MILESTONE") {
object Milestones extends Table[Milestone]("MILESTONE") with Functions {
def userName = column[String]("USER_NAME", O PrimaryKey)
def repositoryName = column[String]("REPOSITORY_NAME", O PrimaryKey)
def milestoneId = column[Int]("MILESTONE_ID", O PrimaryKey)
def milestoneId = column[Int]("MILESTONE_ID", O PrimaryKey, O AutoInc)
def title = column[String]("TITLE")
def description = column[String]("DESCRIPTION")
def dueDate = column[java.sql.Date]("DUE_DATE") // TODO convert java.util.Date later
def closedDate = column[java.sql.Timestamp]("CLOSED_DATE")
def ins = userName ~ repositoryName ~ title ~ description.? ~ dueDate.? ~ closedDate.?
def dueDate = column[java.util.Date]("DUE_DATE")
def closedDate = column[java.util.Date]("CLOSED_DATE")
def * = userName ~ repositoryName ~ milestoneId ~ title ~ description.? ~ dueDate.? ~ closedDate.? <> (Milestone, Milestone.unapply _)
def autoInc = userName ~ repositoryName ~ title ~ description.? ~ dueDate.? ~ closedDate.? returning milestoneId
}
case class Milestone(
@@ -21,5 +21,5 @@ case class Milestone(
milestoneId: Int,
title: String,
description: Option[String],
dueDate: Option[java.sql.Date],
closedDate: Option[java.sql.Timestamp])
dueDate: Option[java.util.Date],
closedDate: Option[java.util.Date])

View File

@@ -2,15 +2,15 @@ package model
import scala.slick.driver.H2Driver.simple._
object Repositories extends Table[Repository]("REPOSITORY") {
object Repositories extends Table[Repository]("REPOSITORY") with Functions {
def repositoryName= column[String]("REPOSITORY_NAME", O PrimaryKey)
def userName = column[String]("USER_NAME", O PrimaryKey)
def isPrivate = column[Boolean]("PRIVATE")
def description = column[String]("DESCRIPTION")
def defaultBranch = column[String]("DEFAULT_BRANCH")
def registeredDate = column[java.sql.Timestamp]("REGISTERED_DATE") // TODO convert java.util.Date later
def updatedDate = column[java.sql.Timestamp]("UPDATED_DATE")
def lastActivityDate = column[java.sql.Timestamp]("LAST_ACTIVITY_DATE")
def registeredDate = column[java.util.Date]("REGISTERED_DATE")
def updatedDate = column[java.util.Date]("UPDATED_DATE")
def lastActivityDate = column[java.util.Date]("LAST_ACTIVITY_DATE")
def * = repositoryName ~ userName ~ isPrivate ~ description.? ~ defaultBranch ~ registeredDate ~ updatedDate ~ lastActivityDate <> (Repository, Repository.unapply _)
}
@@ -20,7 +20,7 @@ case class Repository(
isPrivate: Boolean,
description: Option[String],
defaultBranch: String,
registeredDate: java.sql.Timestamp,
updatedDate: java.sql.Timestamp,
lastActivityDate: java.sql.Timestamp
registeredDate: java.util.Date,
updatedDate: java.util.Date,
lastActivityDate: java.util.Date
)