3

私は slick2.0 と postgresql データベースを使用しています:

私のデータモデルは次のとおりです。

class User(tag: Tag) extends Table[(Int, String,String, String,Date,String,Long,   Int)](tag, "User") {
def id = column[Int]("ID", O.PrimaryKey)
def first_name = column[String]("First_Name")
def second_name=column[String]("Second_Name")
def email=column[String]("Email")
def datebirth=column[Date]("Birth_date")
def password=column[String]("Password")
def addID = column[Long]("ADRESS")
//  def shopID =column[Int]("Shop")
def privilege=column[Int]("privilege")
def * = (id, first_name, second_name, email, datebirth, password, addID, privilege)
// def home_address=foreignKey("ha_FK", addID, address)(_.id)
//  def link_shop=foreignKey("sh_FK", shopID, shop)(_.id)
}
val user=TableQuery[User]

私のGlobal.scalaで:

(user.ddl).create          -----line 67

エラーは次のとおりです。

 play.api.UnexpectedException: Unexpected exception[NullPointerException: null]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anon
fun$1.apply(ApplicationProvider.scala:148) ~[play_2.10-2.2.1.jar:2.2.1]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anon
fun$1.apply(ApplicationProvider.scala:112) ~[play_2.10-2.2.1.jar:2.2.1]
    at scala.Option.map(Option.scala:145) ~[scala-library-2.10.3.jar:na]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply
(ApplicationProvider.scala:112) ~[play_2.10-2.2.1.jar:2.2.1]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply
(ApplicationProvider.scala:110) ~[play_2.10-2.2.1.jar:2.2.1]
    at scala.util.Success.flatMap(Try.scala:200) ~[scala-library-2.10.3.jar:
na]
Caused by: java.lang.NullPointerException: null
    at scala.slick.profile.RelationalProfile$TableQueryExtensionMethods.ddl(
RelationalProfile.scala:41) ~[slick_2.10-2.0.1.jar:2.0.1]
    at InitialData$$anonfun$insert$1.apply(Global.scala:67) ~[na:na]   ------------here is the    user.dll.create and here is the error.
    at InitialData$$anonfun$insert$1.apply(Global.scala:61) ~[na:na]
    at scala.slick.backend.DatabaseComponent$DatabaseDef$class.withSession(D
atabaseComponent.scala:31) ~[slick_2.10-2.0.1.jar:2.0.1]
    at scala.slick.jdbc.PlayDatabase.withSession(PlayDatabase.scala:6) ~[pla
y-slick_2.10-0.6.0.1.jar:2.0.1]
    at InitialData$.insert(Global.scala:60) ~[na:na]  

なぜデータテーブルを作成するとエラーが発生し、NullPointerException が発生するのですか

4

1 に答える 1

3

TableQuery宣言を次から変更すると、これは初期化順序の問題のようです。

val user=TableQuery[User]

に:

def user=TableQuery[User]

これで問題は解決するはずです。

于 2014-09-04T11:30:14.683 に答える