Не удалось написать JSON: не удалось десериализовать; вложенное исключение

Две модели:

@Entity @Table(name="products") data class Product( @Id @GeneratedValue(strategy = GenerationType.AUTO) var id: Long = 0, var name: String = "", var price: Number = 0 ) @Entity @Table(name="users") data class User( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Long = 0, var name: String = "", var email: String = "", @OneToMany(targetEntity = Product::class) @JoinColumn(name = "user_id") var products: List<Product> = listOf() ) { var password: String = "" @JsonIgnore get() = field } 

Мой репозиторий:

 @Repository interface UserRepository : CrudRepository<User, Long> { fun findByEmail(email: String): User } 

В моем контроллере:

 @GetMapping("/users") fun index(): MutableIterable<User> = repository.findAll() 

Когда я обращаюсь к http: // localhost: 8080 / users, я получаю следующую ошибку:

Не удалось написать HTTP-сообщение: org.springframework.http.converter.HttpMessageNotWritableException: не удалось написать JSON: не удалось десериализовать; Вложенное исключение – com.fasterxml.jackson.databind.JsonMappingException: не удалось десериализовать (через цепочку ссылок: java.util.ArrayList [0] -> xxxxxxxxxxx.models.User ["products"])

Попробуй использовать

JpaRepository<User, Long> вместо CrudRepository<User, Long>

а также

List<User> вместо MutableIterable<User>