sam*_*g88 6 java jpa predicate nullpointerexception criteria-api
这很好用:
public Predicate toPredicate(Root<Campaign> root,
CriteriaQuery<?> query, CriteriaBuilder cb) {
return root.get("campState").get("statusId").in(campStatus);
}
Run Code Online (Sandbox Code Playgroud)
但我改为:
return root.get(Campaign_.campState).get(CampState_.campId).in(campStatus).
Run Code Online (Sandbox Code Playgroud)
它抛出异常:
编辑:org.hibernate.ejb.criteria.path.AbstractPathImpl.get中的NullPointerException
@StaticMetamodel(Campaign.class)
public class Campaign_ {
public static volatile SingularAttribute<Campaign, CampState> campState;
public static volatile SingularAttribute<Campaign, Long> campId;
}
@StaticMetamodel(CampState.class)
public class CampState_ {
public static volatile SingularAttribute<CampState, String> statusId;
}
Campaign.class
@ManyToOne(cascade = {CascadeType.REFRESH, CascadeType.MERGE})
@JoinColumn(name = "camp_status")
public CampState getCampState() {
return campState;
}
public void setCampState(CampState campState) {
this.campState = campState;
}
Run Code Online (Sandbox Code Playgroud)
给定两个查询操作不同的属性。第二个查询无法编译,因为 CampState_ 没有属性campId(Campaign_ 确实有这样的属性。
与第一个静态元模型等效的查询是:
root.get(Campaign_.campState).get(CampState_.statusId).in(campStatus).
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2819 次 |
| 最近记录: |