【问题标题】:Could not write JSON: could not deserialize; nested exception is无法编写 JSON:无法反序列化;嵌套异常是
【发布时间】:2017-11-30 13:28:35
【问题描述】:

两种型号:

@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"])

【问题讨论】:

    标签: json spring serialization kotlin


    【解决方案1】:

    尝试使用

    JpaRepository&lt;User, Long&gt; 而不是CrudRepository&lt;User, Long&gt;

    和

    List&lt;User&gt; 而不是MutableIterable&lt;User&gt;

    【讨论】:

      猜你喜欢
      • 2020-05-23
      • 1970-01-01
      • 2019-04-11
      • 2019-09-10
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      相关资源
      最近更新 更多