从数据库Hibernate

时间:2017-08-31 12:44:30

标签: java mysql hibernate netbeans

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>();
.
. 
.

1 个答案:

答案 0 :(得分:1)

当您阅读数据库时,您已经获得Employee个。并且你试图将它们转换为Object[],因此你的错误。

对于第二个问题,当你得到像model.calShift@602c403c这样的内容时,它来自于你没有覆盖toString类的calShift方法。所以被调用的那个是来自Object的那个,正如你所看到的那样,它并不是真正用户友好的。