我的用户对象如下:
公共类用户实现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
有人可以建议我我做错了什么吗? 预先感谢
答案 0 :(得分:1)
您要查询一组不同的字段,因此结果列表中的每一行将是一个Java对象数组(Object[]
)。
您要查询单个对象:select u from User u
。
(然后您就可以猜测所有要选择的字段并加入到Hibernate中了)。