2015-06-02 4 views
5

Wie alle Entitäten von einer Abfrage [TableType] oder von einer Abfrage [TableType, EntityType, Seq] in Slick 3.0.0 gelesen werden? Im Tutorial gab es die "result" -Methode, die jedoch nicht nach allen Konfigurationen definiert wurde.Alle Entitäten von einer glatten Abfrage erhalten

Edit:

Ich habe versucht qbooks.result und zu verwenden (< für (Buch - qbooks) Ausbeute (Buch)) von diesem Modell führen.

import java.sql.Date 
import slick.driver.H2Driver.api._ 
import slick.backend.DatabasePublisher 
import slick.driver.JdbcProfile 
import entities._ 

object tables { 
    private val db = Database.forConfig("h2db") 

    //one of the table queries 
    val qbooks = TableQuery[Books] 

    db.run(
    DBIO.seq(
     qbooks.schema.create, 
     ... 
    ) 
) 

    //one of the tables 
    class Books(tag: Tag) extends Table[Book](tag, "books") { 
    def isbn = column[Int]("isbn", O.PrimaryKey, O.AutoInc) 
    def author = column[String]("author") 
    def title = column[String]("title") 
    def year = column[Int]("edition_year") 
    def amount = column[Int]("amount") 
    def * = (isbn, author, title, year, amount) <> 
     (Book.tupled, Book.unapply) 
    } 
+0

Sie sollten immer noch die Ergebnismethode verwenden. Es kann Ihre IDE sein, die nicht schließen kann, dass die Ergebnismethode dort ist. IntelliJ hat (oder hatte kürzlich) dieses Problem. https://youtrack.jetbrains.com/issue/SCL-8436. Haben Sie versucht, außerhalb Ihrer IDE zu kompilieren? –

+0

Immer noch dort: "Wert Ergebnis ist kein Mitglied von slick.lifted.TableQuery [TTable]" und "Wert Ergebnis ist kein Mitglied von slick.lifted.Query [TTable, Entity, Seq]." –

+0

Können Sie etwas mehr Code posten? –

Antwort

1

val qbooks = TableQuery[Books] zu sein scheint ein Makro (müssen Makros im Compiler aktiviert sein?). Ich habe diese Syntax nicht verwendet, aber die folgenden Compiles für mich

//one of the table queries 
    object qbooks extends TableQuery[Books](tag ⇒ new Books(tag)) { 
    def all = qbooks.result 
    } 

db.run(qbooks.all) 
+0

Danke für die Antwort. Aber ich kann die Entitäten immer noch nicht vorlesen. –

+0

Aber es kompiliert jetzt? Irgendwelche Fehler oder Ausnahmen? –

+0

Ja kompiliert es aber nicht so, wie ich es möchte. Ich kann es immer noch nicht zu einer Liste von Entitäten machen. –