2016-09-01 3 views
1

나는 Cantandra 3.7에서 Phantom 1.28을 사용하고 있습니다.팬텀 매핑 Java 8 LocalDateTime to Joda Time

case class User(
    verifiedAt: Option[LocalDateTime] = None 
) 

팬텀 모델에서 :

컴파일 오류 :

나는 자바 8 LocalDateTime있는 경우 클래스가

error: type mismatch; 
[ERROR] found : Option[com.websudos.phantom.dsl.DateTime] 
[ERROR]  (which expands to) Option[org.joda.time.DateTime] 
[ERROR] required: Option[java.time.LocalDateTime] 
[ERROR]  verified_at(r), 

나는 자바에 8 LocalDateTime 스틱 좋아 , OptionDateTimeColumn에 joda 시간이 필요하다는 것을 어떻게 해결할 수 있습니까? 아니면 더 나은 방법이 있습니까?

답변

2

팬텀 (Phantom)은 여전히 ​​JDK7과 호환되며 이것이 우리에게 중요했습니다. 바로이 때문에 Java 8 시간은 직접 지원되지 않지만 별도의 모듈이 있습니다. 귀하의 빌드. 옵션 열의 경우 자바 8. 사용할 수

import com.websudos.phantom.dsl._ 
import com.websudos.phantom.jdk8.dsl._ 

class UserModel extends CassandraTable[ConcreteUserModel, User]{ 

    // This will not return Option[LocalDate], it will return simply LocalDate 
    object verified_at extends JdkLocalDateColumn(this) 

    override def fromRow(r: Row): User = User(verified_at(r)) 
} 

Here are 모든 열 :

import com.websudos.phantom.dsl._ 
import com.websudos.phantom.jdk8.dsl._ 

class UserModel extends CassandraTable[ConcreteUserModel, User]{ 

    object verified_at extends OptionalPrimitiveColumn[ConcreteUserModel, User, JdkLocalDate](this) 

    override def fromRow(r: Row): User = User(verified_at(r)) 
} 

libraryDependencies ++= Seq(
    "com.websudos" %% "phantom-jdk8" % phantomVersion 
) 

는 다음을 수행해야

관련 문제