私はSpring MVCプロジェクトに取り組んでいます。休止状態を使用しています。jQuery で AJAX を使用して、Spring コントローラーから JSON を取得したいと考えています。残念ながらGson
、アプリケーションにメソッドを実装していたときにエラーが発生しました:
java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class:
org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?
どのアダプターをどのように使用する必要がありますか? エラーはメソッドの最後の行で発生しました:
public String messagesToJson(List<Message> messages) {
Gson gson = new Gson();
List<Message> synchronizedMessages = Collections.synchronizedList(messages);
return gson.toJson(synchronizedMessages, ArrayList.class);
}
これは、Message
Hibernate を使用した Spring MVC プロジェクトで使用しているクラスです。
@Entity
@Table(name = "MESSAGES", schema = "PUBLIC", catalog = "PUBLIC")
public class Message implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private int messageId;
private User users;
private String message;
private Date date;
//Constructor, getters, setters, toString
}
編集
私は疑問に思っています:私のMessage
オブジェクトはプロキシされていますか、それとも全体List<Message>
ですか? この方法でメッセージのリストを取得しています:
public List<Message> findAllUserMessages(String username) {
Query query = entityManager.createQuery("from Message where username = :username order by date desc")
.setParameter("username", username);
@SuppressWarnings("unchecked")
List<Message> messages = query.getResultList();
return messages;
}
編集2
いいえ、私のList<Message>
オブジェクトはプロキシされていません。