我的vaadin网格存在问题。我可以轻松地设置一个新创建的对象列表,如下所示:
private Grid<Objective> test = new Grid<>(Objective.class);
List<Objective> people = Arrays.asList(
new Objective("Nicolaus Copernicus","lol", 1),
new Objective("Santaklaus Copernicus","qwr", 2),
new Objective("Omarklaus Copernicus","asdf", 3));
test.setColumns("name", "difficulty");
test.setItems(sampleData);
但是,如果我想显示我的目标列表(通过JPA保存与患者模型的关系)它不起作用(什么都不显示)。 size()是我可以选择&#34;目标bc延迟加载是标准的。我能做什么?测试了很多东西,但没有任何作用。
@Override
public void fillObjectiveList(ObjectiveList objectiveList) {
test.setColumns("name", "difficulty");
List<Objective> realData = objectiveList.getObjectives();
realData.size();
test.setItems(sampleData);
}
ObjectiveList类:
@Entity
public class ObjectiveList {
....
@OneToMany(mappedBy= "objList", cascade = CascadeType.ALL)
private List<Objective> objectives = new ArrayList<Objective>();
....
public List<Objective> getObjectives() {
return objectives;
}
这很好用,所以我可以从列表中获取属性。
realData.get(0).getName();
每个数据都通过患者与oneToOne或ManyToOne等连接。 患者oneToOne ObjectiveList oneToMany目标
有人能帮助我吗?我没有粘贴孔代码,它非常大。如果您需要更多代码,请说出哪个部分。谢谢!
EDIT1:
我注意到的差异是支架,如果我sysout列表: manualy创建列表
[ch.bfh.btx8081.w2017.blue.sophobia.model.Objective@6ad2b61e, ch.bfh.btx8081.w2017.blue.sophobia.model.Objective@66ce6ca4, ch.bfh.btx8081.w2017.blue.sophobia.model.Objective@3d577486]
jpa创建了列表
{[ch.bfh.btx8081.w2017.blue.sophobia.model.Objective@214a78ec, ch.bfh.btx8081.w2017.blue.sophobia.model.Objective@66e93870]}
答案 0 :(得分:0)
试试这个:
grid.addColumn(Objective::getName).setCaption("Name");
grid.addColumn(Objective::getDifficulty).setCaption("Difficulty");
答案 1 :(得分:0)
它已经解决了。我必须添加&f; fetch = FetchType.EAGER&#39;到我的目标清单。