Play Framework: плохой тип в стеке операндов - PullRequest
0 голосов
/ 13 ноября 2018

Код написан на scala, но исключение взято из java.lang.Я пытаюсь подключить мое основное приложение scala + play к базе данных.Я использую учебник https://www.youtube.com/watch?v=Zdt_utUOd5s&list=PLYPFxrXyK0Bx9SBkNhJr1e2-NlIq4E7ED&index=21

Все работало так же, как в видео, пока 7:40 не наступило.Вместо того, чтобы получить возможность запуска сценария sql, я получаю эту странную ошибку:

VerifyError: Неверный тип в стеке операндов

Сведения об исключении:

Расположение: модели/Book.(ILjava/lang/String;ILjava/lang/String;)V @ 2: invokevirtual

Причина: тип uninitializedThis (текущий кадр, стек [0]) нельзя назначить для моделей / книг

Текущий кадр: bci: @ 2 flags: {flagThisUninit} locals: {uninitializedThis, integer, 'java / lang / String', целое число, 'java / lang / String'}

stack: { uninitializedThis, integer }

Байт-код: 0000000: 2a1b b600 d52a 2cb6 00d8 2a1d b600 дБ2а 0000010: 1904

И немного Stack Trace:

Вот мои модели. Класс книги:

package models

import io.ebean.Model
import javax.persistence.{Entity, Id}

@Entity
case class Book(identifier: Int, title1: String, price1: Int, author1: String)  extends Model {
  @Id
  var id: Int = identifier
  var title: String = title1
  var price: Int = price1
  var author: String = author1

  override def toString: String = s"id = $id $title written by $author"

И объект Bookset

import scala.collection.mutable.HashSet

object BookSet {


  val set: HashSet[Book] = HashSet[Book]()




  add(Book(1,"C++",20,"This one Danish Guy"))
  add(Book(2,"Java",30,"Sun Mirco"))
  add(Book(3,"Gone with the wind",60,"Some dude"))
  add(Book(4,"Catcher in the Rye",20,"Some other dude"))


  def findById(id: Int): Book = {
    var mybook: Book = null
    set foreach { book =>
      if(book.id == id) mybook = book
    }
    mybook
  }


  def add(book: Book) = {
    set.add(book)
    //bookIndex+=1

  }

  def remove(book: Book) = {
    set.remove(book)
  }

Я сделал всенеобходимая подготовительная работа (build.sbt, plugins.sbt, app.conf), которую выполнил парень из видео.У меня есть строка: db.default.enabled = true в моем файле app.conf, и я добавил

libraryDependencies ++= Seq(evolutions, jdbc) 

к build.sbt

Я заметил, что после удаления аннотации @Entityя не получаю исключение, ни возможность запустить сценарий sql =.Что является причиной проблемы и как ее исправить?Это потому, что я использую классы Scala вместо простых POJO?

...