Java HQL-使用布尔参数选择新构造函数
我试图用一个布尔参数调用TestResultTo构造函数,但一直得到一个错误 TestResultTo:Java HQL-使用布尔参数选择新构造函数,java,hibernate,hql,Java,Hibernate,Hql,我试图用一个布尔参数调用TestResultTo构造函数,但一直得到一个错误 TestResultTo: public class TestResultDTO extends AbstractDTO { private Boolean test; private Boolean locked; public TestResultDTO() { super(); } public TestResultDTO(Boolean locked,
public class TestResultDTO extends AbstractDTO {
private Boolean test;
private Boolean locked;
public TestResultDTO() {
super();
}
public TestResultDTO(Boolean locked, Boolean test) {
super();
this.test = test;
this.locked = locked;
}
查询:
SELECT NEW com.xxx.model.dto.widgets.results.TestResultDTO(p.isLocked, IF((p.playerStatus = 'STANDARD'), false, true)) From player p Where p.id = 1
错误:
java.lang.NullPointerException
at org.hibernate.internal.util.ReflectHelper.getConstructor(ReflectHelper.java:355)
是否有方法传递硬编码的布尔参数(“true”)?查询可能如下所示:-
SELECT NEW com.xxx.model.dto.widgets.results.TestResultDTO(p.isLocked, CASE WHEN p.playerStatus = 'STANDARD' then false else true end) From player p Where p.id = 1 .
作为参考:我认为你需要使用0或1来表示相同的值。尝试一次。尝试了一次,仍然得到相同的错误为什么你使用new,那么你可以给出一个字段来代替它。这只是一个更大的构造函数的例子。我有几个更复杂的“如果”条件