Котлин раскрыл бесконечную рекурсию Джексона «многие ко многим» (StackOverflowError) - PullRequest
1 голос
/ 04 апреля 2019

Я сделал ссылку «многие ко многим» в ExposedBD (kotlin), как описано в вики: https://github.com/JetBrains/Exposed/wiki/DAO#many-to-many-reference

Однако, существует проблема бесконечной рекурсии (Джексон), когда я пытаюсьвернуть список объектов в моем API (Javalin).Итак, я хотел бы знать, как разместить аннотацию "@jsonIgnore" или есть ли другие альтернативные решения в этом случае.Вот отображение:

Спасибо заранее

// many-to-many Actor--StarWarsFilms

// Actor Entity
object Actors: IntIdTable() {
    val firstname = varchar("firstname", 50)
    val lastname = varchar("lastname", 50)
}

class Actor(id: EntityID<Int>): IntEntity(id) {
    companion object : IntEntityClass<Actor>(Actors)

    var firstname by Actors.firstname
    var lastname by Actors.lastname
}

// StarWarFilm Entity
object StarWarsFilms : IntIdTable() {
  val sequelId = integer("sequel_id").uniqueIndex()
  val name = varchar("name", 50)
  val director = varchar("director", 50)
}

class StarWarsFilm(id: EntityID<Int>) : IntEntity(id) {
 companion object : IntEntityClass<StarWarsFilm>(StarWarsFilms)

 var sequelId by StarWarsFilms.sequelId 
 var name     by StarWarsFilms.name
 var director by StarWarsFilms.director
 var actors by Actor via StarWarsFilmActors
}

// Intermediate table
object StarWarsFilmActors : Table() {
    val starWarsFilm = reference("starWarsFilm", StarWarsFilms).primaryKey(0)
    val actor = reference("actor", Actors).primaryKey(1)
}
...