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上获得输出参考而不是获得实际值(字符串)
[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>();
.
.
.
答案 0 :(得分:1)
当您阅读数据库时,您已经获得Employee
个。并且你试图将它们转换为Object[]
,因此你的错误。
对于第二个问题,当你得到像model.calShift@602c403c
这样的内容时,它来自于你没有覆盖toString
类的calShift
方法。所以被调用的那个是来自Object
的那个,正如你所看到的那样,它并不是真正用户友好的。