Query queryShift=session.createQuery("select e from employee e join fetch e.calShiftlist");
List<Object[]> listShift=null;
listShift= queryShift.list();
for (Object[] listShift1 : listShift) {
System.out.println(Arrays.toString(listShift1));
}
我在输出中获得的是此错误:
java.lang.ClassCastException: model.employee cannot be cast to [Ljava.lang.Object;
即使我设法读取数据IAM在OBJCET上进行输出参考,而不是GETTIN真实值(String)
[model.calShift@602c403c, model.calShift@e2169cd, model.calShift@71808aa4, model.calShift@420c8275,
这是我的嵌入式类
@Embeddable
public class calShift implements Serializable {
String shift;
public String getShift() {
return shift;
}
public void setShift(String shift) {
this.shift = shift;
}
}
这就是我嵌入收藏的方式
..............
.
.
.
@ElementCollection
@JoinColumn(name = "ID")
private List<calShift> calShiftlist=new ArrayList<calShift>();
.
.
.
读取数据库时,您已经获得了Employee
s。而且您正在尝试将它们投射到Object[]
,因此您的错误。
对于第二个问题,当您获得诸如model.calShift@602c403c
之类的东西时,它来自以下事实:您还没有超越calShift
类的toString
方法。因此,被称为Object
的一个是,如您所见,这不是真正的用户友好。