如何将特定对象列表正确转换为Gson?
我正在从事春季MVC项目。我正在使用休眠。我想将AJAX与jQuery一起使用,从我的Spring Controllers中获取一些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);
}
这是我在Hibernate的Spring MVC项目中使用的类:Message
@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>