好傢伙我有這樣的代碼:Hibernate的預測與收藏ArrayIndexOutOfBoundsException異常
Criteria criteria = session.createCriteria(Department.class);
ProjectionList properties = Projections.projectionList();
properties.add(Projections.property("id"), "id");
properties.add(Projections.property("name"), "name");
properties.add(Projections.property("children"), "children");
criteria.setProjection(properties);
criteria.setFetchMode("children", FetchMode.JOIN);
criteria.setResultTransformer(Transformers.aliasToBean(Department.class));
criteria.add(Restrictions.isNull("parent.id"));
criteria.add(Restrictions.eq("active", true));
return criteria.list();
和實體類
public class Department extends Model {
@Size(max = 200)
private String name;
@Size(max = 10)
private String sg;
@Size(max = 1000)
private String description;
@ManyToOne
@JoinColumn(name = "id_parent")
private Department parent;
private boolean active;
@OneToMany(mappedBy = "parent")
private List<Department> children;
...加上getter和setter ...
我執行標準並給我堆棧例外:
java.lang.ArrayIndexOutOfBoundsException: 2
at org.hibernate.loader.criteria.CriteriaLoader.getResultRow(CriteriaLoader.java:166)
at org.hibernate.loader.criteria.CriteriaLoader.getResultColumnOrRow(CriteriaLoader.java:146)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:747)
at org.hibernate.loader.Loader.processResultSet(Loader.java:949)
at org.hibernate.loader.Loader.doQuery(Loader.java:917)
at
我在做什麼錯?
在此先感謝。
將代碼發佈到「執行條件」和堆棧跟蹤。 – chrylis