【发布时间】:2026-02-04 17:30:01
【问题描述】:
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;
即使我设法读取数据,我也会在 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>();
.
.
.
【问题讨论】:
-
好吧,用员工 x 替换对象)
-
{Query queryShift=session.createQuery("select e from employee e join fetch e.calShiftlist"); List
listShift=(List )queryShift.list(); for (员工 listShift1 : listShift) { System.out.println(listShift1); }} 我的输出是这样的:model.employee@645b0177 -
那是因为对象是这样打印的。如果您想在打印员工时输出其他内容,请覆盖员工类中的 toString() 方法。
-
我必须在我的 calShift 类中更改 toString ,tnx verymutch! :D
-
@IlijaPavlovic 其他问题呢? classCast 异常?
标签: java mysql hibernate netbeans