我的用户对象如下:
公共(public)类 User 实现可序列化{
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 ;
而metghod是
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; cannot be cast to com.common.models.User
有人可以告诉我我做错了什么吗? 提前致谢
最佳答案
您对一组不同字段的查询,因此结果列表中的每一行都将是一个 Java 对象数组 (Object[]
)。
您想要查询单个对象:从用户 u 中选择 u
。
(您将猜测所有要选择的字段并加入到 Hibernate 中)。
关于java - hibernate 和 spring mvc 中的 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51261569/