0
Salat을 사용하여 mongodb 컬렉션에 대한 스칼라 클래스를 사용하고 있습니다. 테스트 케이스에서 json 문자열을 비 직렬화하려고했습니다. 그러나 날짜 유형의 형식에 대한 예외가 발생합니다. Salat DAO를 사용하여 객체를 가져 오는 데 문제가 없습니다. 그러나 그것을 테스트 할 때, 그것은 나에게 오류를 주었다. 몽고 수집스칼라 java.util.date 형식을 deserialize하지 못했습니다.
클래스
case class MemberData(
id: ObjectId = new ObjectId,
memberId: String,
anotherDate: Date = new Date()
)
object MemberData extends MemberDataDAO with MemberDataJson
trait MemberDataDAO extends ModelCompanion[MemberData, ObjectId] {
def collection = mongoCollection("member_data")
val dao = new SalatDAO[MemberData, ObjectId](collection) {}
}
trait MemberDataJson {
implicit val memberDataJsonWrite = (
(__ \ "id").write[ObjectId] ~
(__ \ "memberId").write[String] ~
(__ \ "anotherDate").write[Date](Writes.dateWrites("yyyy-MM-dd HH:mm:ss"))
)(unlift(MemberData.unapply))
implicit val memberDataJsonRead = (
(__ \ 'id).read[ObjectId] ~
(__ \ 'memberId).read[String] ~
(__ \ 'anotherDate).read[Date](Reads.dateReads("yyyy-MM-dd HH:mm:ss")).orElse(Reads.pure(new Date()))
)(MemberData.apply _)
}
테스트 케이스 실패 :
val memberDataJsObj = Json.obj(
"id" -> _id.toString,
"memberId" -> "1",
"anotherDate" -> updateDateStr
)
val toJsonStr = Json.stringify(memberDataJsObj)
assert(MemberData.fromJSON(toJsonStr) == memberData)
이유 :
! Invalid format: "2014-02-07 09:27:21" is malformed at " 09:27:21"