我想使用提升的光滑来编写数据库模式。我有超过100列的大表。所以我对超过22列的所有表都有这个错误:
类型Tuple45不是包scala的成员
以下是其中一个表格的代码:
object adrepost extends Table[(String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, Date, Boolean, Date, Int, Boolean, String, String, String, String, String, Boolean, Boolean, String, String, Boolean)]("ADREPOST") {
def codeadrp = column[String]("CODEADRP", O.PrimaryKey, O.NotNull,O.DBType("VARCHAR(7)"))
def codecivi = column[String]("CODECIVI", O.NotNull, O.DBType("VARCHAR(3)"))
def nom1 = column[String]("NOM1", O.NotNull, O.DBType("VARCHAR(32)"))
def nom2 = column[String]("NOM2", O.NotNull, O.DBType("VARCHAR(32)"))
def complt1 = column[String]("COMPLT1", O.NotNull, O.DBType("VARCHAR(32)"))
def complt2 = column[String]("COMPLT2", O.NotNull, O.DBType("VARCHAR(32)"))
def voienum = column[String]("VOIENUM", O.NotNull, O.DBType("VARCHAR(10)"))
def voienom = column[String]("VOIENOM", O.NotNull, O.DBType("VARCHAR(32)"))
def codepays = column[String]("CODEPAYS", O.NotNull, O.DBType("VARCHAR(3)"))
def codecpced = column[String]("CODECPCED", O.NotNull, O.DBType("VARCHAR(10)"))
def codeinsee = column[String]("CODEINSEE", O.NotNull, O.DBType("VARCHAR(10)"))
def codeetat = column[String]("CODEETAT", O.NotNull, O.DBType("VARCHAR(8)"))
def telephone = column[String]("TELEPHONE", O.NotNull, O.DBType("VARCHAR(18)"))
def telephone2 = column[String]("TELEPHONE2", O.NotNull, O.DBType("VARCHAR(18)"))
def telecopie = column[String]("TELECOPIE", O.NotNull, O.DBType("VARCHAR(18)"))
def email = column[String]("EMAIL", O.NotNull, O.DBType("VARCHAR(64)"))
def argument = column[String]("ARGUMENT", O.NotNull, O.DBType("VARCHAR(16)"))
def ddn_crea = column[Date]("DDN_CREA")
def top_robins = column[Boolean]("TOP_ROBINS", O.NotNull)
def dat_maj = column[Date]("DAT_MAJ", O.NotNull)
def nb_npai = column[Int]("NB_NPAI", O.NotNull)
def top_noloca = column[Boolean]("TOP_NOLOCA", O.NotNull)
def siren = column[String]("SIREN", O.NotNull, O.DBType("VARCHAR(9)"))
def nic = column[String]("NIC", O.NotNull, O.DBType("VARCHAR(5)"))
def codenaf = column[String]("CODENAF", O.NotNull, O.DBType("VARCHAR(5)"))
def id_fiscale = column[String]("ID_FISCALE", O.NotNull, O.DBType("VARCHAR(15)"))
def matchcode = column[String]("MATCHCODE", O.NotNull, O.DBType("VARCHAR(18)"))
def top_erobin = column[Boolean]("TOP_EROBIN", O.NotNull)
def top_seg = column[Boolean]("TOP_SEG", O.NotNull)
def codelang = column[String]("CODELANG", O.NotNull, O.DBType("VARCHAR(3)"))
def codeutil = column[String]("CODEUTIL", O.NotNull, O.DBType("VARCHAR(3)"))
def inactivee = column[Boolean]("INACTIVEE", O.NotNull)
def * = codeadrp ~ codecivi ~ nom1 ~ nom2 ~ complt1 ~ complt2 ~ voienum ~ voienom ~ codepays ~ codecpced ~ codeinsee ~ codeetat ~ telephone ~ telephone2 ~ telecopie ~ email ~ argument ~ ddn_crea ~ top_robins ~ dat_maj ~ nb_npai ~ top_noloca ~ siren ~ nic ~ codenaf ~ id_fiscale ~ matchcode ~ top_erobin ~ top_seg ~ codelang ~ codeutil ~ inactivee
def idx1 = index("adrepost_argument", (argument), unique = true)
def idx2 = index("adrepost_codecpced", (codecpced), unique = true)
def idx3 = index("adrepost_commune", (codepays, codecpced, codeinsee), unique = true)
def idx4 = index("adrepost_matchcode", (matchcode), unique = true)
def idx5 = index("adrepost_nom1", (nom1), unique = true)
}
关于如何解决这个问题的任何想法??
答案 0 :(得分:3)
您应该看一下使用嵌套元组来解决此问题。以下帖子对我有帮助:
https://groups.google.com/forum/#!msg/scalaquery/qjNW8P7VQJ8/ntqCkz0S4WIJ
Stefan使用代码中的注释来帮助您完成正在完成的工作。
附注:几周前,在一次Slick谈话中,我被告知这个限制正在下一个版本中解决,该版本即将发布。