Slick의 모델 선언의 장황함과 반복성을 어떻게 피할 수 있습니까?

키보드 사무라이

현재 Slick 1.x를 사용하여 playframework 2.1.3 내에서 MySQL에 액세스하고 있습니다. 일반적으로 Slick의 기능이 꽤 좋아 보이지만 선언 구문이 얼마나 반복적인지에 대해 머리를 감쌀 수는 없습니다. 다음 코드를 살펴 보겠습니다.

case class User
 (id: Option[Long]
 , firstName: String
 , lastName: String
 , email: String
 , password: String
 , status: String
 , createDate: Long = Platform.currentTime
 , firstLogin: Option[Long]
 , lastLogin: Option[Long]
 , passwordChanged: Option[Long]
 , failedAttempts: Int = 0
  )

object User extends Table[User]("USER") {
  def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
  def firstName = column[String]("firstName", O.NotNull)
  def lastName = column[String]("lastName", O.NotNull)
  def email = column[String]("mail", O.NotNull)
  def password = column[String]("password", O.NotNull)
  def status = column[String]("status", O.NotNull)
  def createDate = column[Long]("createDate", O.NotNull)
  def firstLogin = column[Long]("firstLogin", O.Nullable)
  def lastLogin = column[Long]("lastLogin", O.Nullable)
  def passwordChanged = column[Long]("passwordChanged", O.Nullable)
  def failedAttempts = column[Int]("failedAttempts", O.NotNull)

  def * = id.? ~ firstName ~ lastName ~ email ~ password ~ status ~ createDate ~ firstLogin.? ~ lastLogin.? ~ passwordChanged.? ~ failedAttempts <>(User.apply _, User.unapply _)
  def autoInc = * returning id
}

간단한 케이스 클래스와 액세스 객체를 가지려면 각 필드를 세 번 선언해야한다는 것은 옳지 않습니다. 이 오류가 발생하기 쉬운 반복을 피할 수있는 방법이 있습니까?

업데이트 : 물론이 문제에 대한 해결책은 읽기 및 쓰기 작업을 지원해야 합니다.

cvogt

코드 생성 또는 향후 유형 공급자를 사용할 수 있습니다.

참조 https://groups.google.com/d/msg/scalaquery/Pdp3GTXsKCo/O0e3JLXAaK8J를

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

신경망 모델의 모든 세부 사항을 어떻게 저장할 수 있습니까?

분류에서Dev

Ruby on Rails 모델에서 배열과 해시의 혼합을 어떻게 활용할 수 있습니까?

분류에서Dev

사전 훈련 된 caffe 모델의 하위 집합을 어떻게 저장할 수 있습니까?

분류에서Dev

클래스 속성의 유형을 어떻게 선언 할 수 있습니까?

분류에서Dev

GameObject의 피벗을 어떻게 변경할 수 있습니까?

분류에서Dev

backbone.js의 라우터에서 모델의 속성을 어떻게 확인할 수 있습니까?

분류에서Dev

배열을 사용자 지정 모델과 비교하는 데 더 효율적인 함수를 어떻게 정의 할 수 있습니까?

분류에서Dev

맵 함수 내의 모든 반복에 새 참조를 어떻게 할당 할 수 있습니까?

분류에서Dev

감소 함수의 각 반복을 목록에 어떻게 저장할 수 있습니까?

분류에서Dev

SQL에서 동일한 출력을 두 번 사용할 때 함수의 반복을 어떻게 피할 수 있습니까?

분류에서Dev

Django에서 동일한 모델의 다른 속성을 어떻게 호출 / 참조 할 수 있습니까?

분류에서Dev

자식 범위 내에서 부모 범위의 모델을 어떻게 업데이트 할 수 있습니까?

분류에서Dev

메서드 간의 종속성을 어떻게 피할 수 있습니까?

분류에서Dev

LUIS 모델의 성능을 어떻게 향상시킬 수 있습니까?

분류에서Dev

메모장 ++에서 태그 사이의 모든 것을 어떻게 선택할 수 있습니까?

분류에서Dev

메모장 ++에서 태그 사이의 모든 것을 어떻게 선택할 수 있습니까?

분류에서Dev

장고의 신호에서 부모 모델 객체를 어떻게 얻을 수 있습니까?

분류에서Dev

함수의 결과를 변수에 어떻게 저장할 수 있습니까?

분류에서Dev

Nodes net 라이브러리 함수의 반환 값을 어떻게 모의 할 수 있습니까?

분류에서Dev

Android에서 함수의 결과를 어떻게 반환 할 수 있습니까?

분류에서Dev

내 몽구스 모델의 인스턴스 내에서이 배열을 어떻게 반복 할 수 있습니까?

분류에서Dev

MVC 5의 뷰에 문자열을 모델로 어떻게 전달할 수 있습니까?

분류에서Dev

삽입시 Ecto 모델의 일부 필드에 일부 값을 어떻게 설정할 수 있습니까?

분류에서Dev

Django 모델에서 같은 이름의 두 기능을 어떻게 사용할 수 있습니까?

분류에서Dev

json.getString의 JSONArray 결과를 어떻게 반복 할 수 있습니까?

분류에서Dev

언어 모델의 난이도는 어떻게 0과 1 사이 일 수 있습니까?

분류에서Dev

열거 형과 유사한 속성으로 이러한 모든 반복을 어떻게 피할 수 있습니까?

분류에서Dev

오라클의 null 값을 포함하여 LIKE로 모든 것을 어떻게 반환 할 수 있습니까?

분류에서Dev

Kotlin : 엄청난 양의 ConsPStack을 어떻게 피할 수 있습니까?

Related 관련 기사

  1. 1

    신경망 모델의 모든 세부 사항을 어떻게 저장할 수 있습니까?

  2. 2

    Ruby on Rails 모델에서 배열과 해시의 혼합을 어떻게 활용할 수 있습니까?

  3. 3

    사전 훈련 된 caffe 모델의 하위 집합을 어떻게 저장할 수 있습니까?

  4. 4

    클래스 속성의 유형을 어떻게 선언 할 수 있습니까?

  5. 5

    GameObject의 피벗을 어떻게 변경할 수 있습니까?

  6. 6

    backbone.js의 라우터에서 모델의 속성을 어떻게 확인할 수 있습니까?

  7. 7

    배열을 사용자 지정 모델과 비교하는 데 더 효율적인 함수를 어떻게 정의 할 수 있습니까?

  8. 8

    맵 함수 내의 모든 반복에 새 참조를 어떻게 할당 할 수 있습니까?

  9. 9

    감소 함수의 각 반복을 목록에 어떻게 저장할 수 있습니까?

  10. 10

    SQL에서 동일한 출력을 두 번 사용할 때 함수의 반복을 어떻게 피할 수 있습니까?

  11. 11

    Django에서 동일한 모델의 다른 속성을 어떻게 호출 / 참조 할 수 있습니까?

  12. 12

    자식 범위 내에서 부모 범위의 모델을 어떻게 업데이트 할 수 있습니까?

  13. 13

    메서드 간의 종속성을 어떻게 피할 수 있습니까?

  14. 14

    LUIS 모델의 성능을 어떻게 향상시킬 수 있습니까?

  15. 15

    메모장 ++에서 태그 사이의 모든 것을 어떻게 선택할 수 있습니까?

  16. 16

    메모장 ++에서 태그 사이의 모든 것을 어떻게 선택할 수 있습니까?

  17. 17

    장고의 신호에서 부모 모델 객체를 어떻게 얻을 수 있습니까?

  18. 18

    함수의 결과를 변수에 어떻게 저장할 수 있습니까?

  19. 19

    Nodes net 라이브러리 함수의 반환 값을 어떻게 모의 할 수 있습니까?

  20. 20

    Android에서 함수의 결과를 어떻게 반환 할 수 있습니까?

  21. 21

    내 몽구스 모델의 인스턴스 내에서이 배열을 어떻게 반복 할 수 있습니까?

  22. 22

    MVC 5의 뷰에 문자열을 모델로 어떻게 전달할 수 있습니까?

  23. 23

    삽입시 Ecto 모델의 일부 필드에 일부 값을 어떻게 설정할 수 있습니까?

  24. 24

    Django 모델에서 같은 이름의 두 기능을 어떻게 사용할 수 있습니까?

  25. 25

    json.getString의 JSONArray 결과를 어떻게 반복 할 수 있습니까?

  26. 26

    언어 모델의 난이도는 어떻게 0과 1 사이 일 수 있습니까?

  27. 27

    열거 형과 유사한 속성으로 이러한 모든 반복을 어떻게 피할 수 있습니까?

  28. 28

    오라클의 null 값을 포함하여 LIKE로 모든 것을 어떻게 반환 할 수 있습니까?

  29. 29

    Kotlin : 엄청난 양의 ConsPStack을 어떻게 피할 수 있습니까?

뜨겁다태그

보관