Hibernate和Spring MVC中的ClassCastException

时间:2018-07-10 09:21:13

标签: java hibernate spring-mvc

我的用户对象如下:

公共类用户实现Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId;

@Column(name="emailId")
private String emailId;

@Column(name="userName")
private String userName;

@Column(name="address")
private String address;

@Column(name="mobNo")
private BigDecimal mobNo;

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "deptId")
private Department department;

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "desgId")
private Designation designation;

@Column(name="grpId")
private int grpId ;

@Column(name="userLevel")
private int userLevel ;

@Column(name="upw1")
private String upw1 ;

@Column(name="upw2")
private String upw2 ;

@Column(name="upw3")
private String upw3 ;

@Column(name="createdBy")
private String createdBy ;

@Column(name="creationDate")
private Timestamp creationDate;

@Column(name="loginStatus")
private String loginStatus;

@Column(name="hintId")
private int hintId ;

@Column(name="hintAns")
private String hintAns ;

@Column(name="otp")
private String otp ;

方法是

public List<User> getUsers(){
    Query query=sessionFactory.getCurrentSession()
            .createQuery("select u.userName, u.mobNo, u.department.deptnm, u.designation.desgnm, "
                    + "u.loginStatus from User u");
    List<User> list=(List<User>)query.list();
    return list;

}

我收到了classCastException

  

java.lang.ClassCastException:java.base / [Ljava.lang.Object;无法转换为com.common.models.User

有人可以建议我我做错了什么吗? 预先感谢

1 个答案:

答案 0 :(得分:1)

您要查询一组不同的字段,因此结果列表中的每一行将是一个Java对象数组(Object[])。

您要查询单个对象:select u from User u

(然后您就可以猜测所有要选择的字段并加入到Hibernate中了)。