我目前正在使用条件来检索用户的详细信息,但在尝试使用正确的用户查询详细信息对象时,我得到了ClassCastException。
我的标准代码;
Criteria criteria = sess.createCriteria(UserDetails.class)
criteria.add(Restrictions.eq("user.id", user.id));
我也尝试过使用;
Criteria criteria = sess.createCriteria(UserDetails.class)
Criteria subCriteria = criteria.createCriteria("user");
subCriteria.add(Restrictions.eq("id", user.id));
两者都给我ClassCastException。我知道我可以通过让用户实现Serializable来轻松解决它,但还有其他解决方案吗?
答案 0 :(得分:14)
您应该实现Serializable
界面。
答案 1 :(得分:11)
我的经验是这样的。我有一系列父/子关系在工作。然后,我被迫重构。在此过程中,我无法正确更新所有注释。那是我开始接收转换为Serializable错误的时候。我实现了Serializable,这暴露了真正的问题。一切正常后,我就能删除Serializable。
因此,在回答您的问题时,真正的问题可能出在您的设置中,而Hibernate正试图通过序列化某些实体来解决问题。尝试暂时实现Serializable以公开问题,然后将其删除。
答案 2 :(得分:10)
对我来说,问题是使用非PK关系时Hibernate中的一个错误:https://hibernate.atlassian.net/browse/HHH-7668
作为一种解决方法,我实现了Serializable,异常消失了
答案 3 :(得分:4)
唯一的其他解决方案是实现Externalizable。