gpt4 book ai didi

java - 从数据库 Hibernate 读取嵌入集合

转载 作者:行者123 更新时间:2023-11-29 10:38:27 24 4
gpt4 key购买 nike

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

最佳答案

当您读取数据库时,您已经得到 Employee s。而你正试图将它们转换到 Object[] ,因此你的错误。

对于第二个问题,当你得到像model.calShift@602c403c这样的东西时,这是因为您没有覆盖 toString你的方法calShift类(class)。因此,被调用的是 Object 中的那个。 ,正如您所看到的,这并不是真正的用户友好。

关于java - 从数据库 Hibernate 读取嵌入集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45981770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com