2017-12-01 16 views
0

私は映画とユーザーの間に多対多の関係を作成しようとしています。タイプのためのジャクソンの逆シリアル化の評価に失敗しました

org.hibernate.collection.internal.PersistentBag[0]->com.mo‌​vieseat.model.securi‌​ty.User["authorities‌​"]->org.hibernate.co‌​llection.internal.Pe‌​rsistentBag[0]->com.‌​movieseat.model.secu‌​rity.Authority["user‌​s"]

私がして固定: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<>(); 

しかし、これは役立ちません。私は行方不明の何か他にありますか?

答えて

0

私はUser.javaクラス

@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id") 
public class User { 

を追加することで、これを固定

関連する問題