私は映画とユーザーの間に多対多の関係を作成しようとしています。タイプのためのジャクソンの逆シリアル化の評価に失敗しました
org.hibernate.collection.internal.PersistentBag[0]->com.movieseat.model.security.User["authorities"]->org.hibernate.collection.internal.PersistentBag[0]->com.movieseat.model.security.Authority["users"]
私がして固定:User.java
@JsonManagedReference
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
name = "USER_AUTHORITY",
joinColumns = {@JoinColumn(name = "USER_ID", referencedColumnName = "ID")},
inverseJoinColumns = {@JoinColumn(name = "AUTHORITY_ID", referencedColumnName = "ID")})
private List<Authority> authorities;
そしてAuthority.java:私は問題があった
2017-12-01 16:12:43.351 WARN 17328 --- [nio-8090-exec-5] .c.j.MappingJackson2HttpMessageConverter : Failed to evaluate Jackson deserialization for type [[simple type, class com.movieseat.models.Movie]]: java.lang.IllegalArgumentException: Can not handle managed/back reference 'defaultReference': back reference type (java.util.List) not compatible with managed type (com.movieseat.model.security.User)
2017-12-01 16:12:43.354 WARN 17328 --- [nio-8090-exec-5] .c.j.MappingJackson2HttpMessageConverter : Failed to evaluate Jackson deserialization for type [[simple type, class com.movieseat.models.Movie]]: java.lang.IllegalArgumentException: Can not handle managed/back reference 'defaultReference': back reference type (java.util.List) not compatible with managed type (com.movieseat.model.security.User)
2017-12-01 16:12:43.356 WARN 17328 --- [nio-8090-exec-5] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved exception caused by Handler execution: org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json;charset=UTF-8' not supported
:私は映画を保存するとき、私はこのエラーを取得する
@JsonBackReference
@ManyToMany(mappedBy = "authorities", fetch = FetchType.LAZY)
private List<User> users;
しかし、私のMovie.javaモデル注釈も必要です。エラー状態:
Can not handle managed/back reference 'defaultReference': back reference type (java.util.List)
は、だから、私はMovie.javaモデルの関係に@JsonBackReferenceを追加しようとしました:
@JsonBackReference
@ManyToMany(mappedBy = "movies")
private Set<User> users = new HashSet<>();
しかし、これは役立ちません。私は行方不明の何か他にありますか?