I'm using Hibernate's JPA and Java 8 to execute what should be a simple query and store the results in a list of class instances. However, when I execute the code, Java gives me a null pointer exception on the .createQuery line.
I've checked the variables being passed to the method, and they both contain valid, non-null data. The rows retrieved when I run the query manually on the database show no null entries in any of the received columns. All columns in the query are members of the GradeSummary class and the Board class.
I'm at a loss. Why is this query not working?
public List<GradeSummary> getGradeSummaryList(VdtsSysDB vdtsSysDB, BoardLoad boardLoad) {
List<GradeSummary> gradeSummaries = vdtsSysDB
.getEntityManager()
.createQuery(
"select new ca.vdts.grading.model.GradeSummary(grade, " +
"count(*), " +
"sum(footBoardMeasure)) " +
"from Board " +
"where boardLoad = :load " +
"group by grade", GradeSummary.class)
.setParameter("load", boardLoad)
.getResultList();
gradeSummaries.sort(Comparator.comparing(gradeSummary -> gradeSummary.getGrade().getName()));
return gradeSummaries;
}
The exception is:
18-08-18 13:28:50.701 ERROR java.lang.Throwable - Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
18-08-18 13:28:50.702 ERROR java.lang.Throwable - at org.hibernate.dialect.function.StandardAnsiSqlAggregationFunctions$SumFunction.determineJdbcTypeCode(StandardAnsiSqlAggregationFunctions.java:200)
18-08-18 13:28:50.702 ERROR java.lang.Throwable - at org.hibernate.dialect.function.StandardAnsiSqlAggregationFunctions$SumFunction.getReturnType(StandardAnsiSqlAggregationFunctions.java:158)
18-08-18 13:28:50.702 ERROR java.lang.Throwable - at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.findFunctionReturnType(SessionFactoryHelper.java:414)
18-08-18 13:28:50.703 ERROR java.lang.Throwable - at org.hibernate.hql.internal.ast.tree.AggregateNode.getDataType(AggregateNode.java:68)
18-08-18 13:28:50.703 ERROR java.lang.Throwable - at org.hibernate.hql.internal.ast.tree.ConstructorNode.resolveConstructorArgumentTypes(ConstructorNode.java:158)
18-08-18 13:28:50.703 ERROR java.lang.Throwable - at org.hibernate.hql.internal.ast.tree.ConstructorNode.prepare(ConstructorNode.java:133)
18-08-18 13:28:50.703 ERROR java.lang.Throwable - at org.hibernate.hql.internal.ast.HqlSqlWalker.processConstructor(HqlSqlWalker.java:1190)
18-08-18 13:28:50.704 ERROR java.lang.Throwable - at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectExpr(HqlSqlBaseWalker.java:2366)
18-08-18 13:28:50.704 ERROR java.lang.Throwable - at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectExprList(HqlSqlBaseWalker.java:2232)
18-08-18 13:28:50.704 ERROR java.lang.Throwable - at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectClause(HqlSqlBaseWalker.java:1503)
18-08-18 13:28:50.704 ERROR java.lang.Throwable - at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:585)
18-08-18 13:28:50.704 ERROR java.lang.Throwable - at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:313)
18-08-18 13:28:50.705 ERROR java.lang.Throwable - at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:261)
18-08-18 13:28:50.705 ERROR java.lang.Throwable - at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:266)
18-08-18 13:28:50.705 ERROR java.lang.Throwable - at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:189)
18-08-18 13:28:50.705 ERROR java.lang.Throwable - at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:141)
18-08-18 13:28:50.706 ERROR java.lang.Throwable - at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:115)
18-08-18 13:28:50.706 ERROR java.lang.Throwable - at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
18-08-18 13:28:50.706 ERROR java.lang.Throwable - at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:153)
18-08-18 13:28:50.707 ERROR java.lang.Throwable - at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:553)
18-08-18 13:28:50.707 ERROR java.lang.Throwable - at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:662)
18-08-18 13:28:50.707 ERROR java.lang.Throwable - at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:686)
18-08-18 13:28:50.707 ERROR java.lang.Throwable - at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:23)
18-08-18 13:28:50.707 ERROR java.lang.Throwable - at ca.vdts.grading.model.Progress.getGradeSummaryList(Progress.java:18)
18-08-18 13:28:50.708 ERROR java.lang.Throwable - at ca.vdts.grading.controllers.ProgressController.updateDisplay(ProgressController.java:155)
18-08-18 13:28:50.708 ERROR java.lang.Throwable - at ca.vdts.grading.controllers.ProgressController.monitorSelected(ProgressController.java:125)
18-08-18 13:28:50.708 ERROR java.lang.Throwable - at ca.vdts.grading.controllers.ProgressController.lambda$initialize$3(ProgressController.java:88)
18-08-18 13:28:50.708 ERROR java.lang.Throwable - at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:361)
18-08-18 13:28:50.708 ERROR java.lang.Throwable - at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
18-08-18 13:28:50.709 ERROR java.lang.Throwable - at javafx.beans.property.ReadOnlyObjectPropertyBase.fireValueChangedEvent(ReadOnlyObjectPropertyBase.java:74)
18-08-18 13:28:50.709 ERROR java.lang.Throwable - at javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:102)
18-08-18 13:28:50.709 ERROR java.lang.Throwable - at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
18-08-18 13:28:50.709 ERROR java.lang.Throwable - at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146)
18-08-18 13:28:50.709 ERROR java.lang.Throwable - at javafx.scene.control.SelectionModel.setSelectedItem(SelectionModel.java:102)
18-08-18 13:28:50.710 ERROR java.lang.Throwable - at javafx.scene.control.ComboBox$ComboBoxSelectionModel.lambda$new$154(ComboBox.java:494)
18-08-18 13:28:50.710 ERROR java.lang.Throwable - at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:137)
18-08-18 13:28:50.710 ERROR java.lang.Throwable - at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
18-08-18 13:28:50.711 ERROR java.lang.Throwable - at javafx.beans.property.ReadOnlyIntegerPropertyBase.fireValueChangedEvent(ReadOnlyIntegerPropertyBase.java:72)
18-08-18 13:28:50.711 ERROR java.lang.Throwable - at javafx.beans.property.ReadOnlyIntegerWrapper.fireValueChangedEvent(ReadOnlyIntegerWrapper.java:102)
18-08-18 13:28:50.711 ERROR java.lang.Throwable - at javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:113)
18-08-18 13:28:50.711 ERROR java.lang.Throwable - at javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:147)
18-08-18 13:28:50.711 ERROR java.lang.Throwable - at javafx.scene.control.SelectionModel.setSelectedIndex(SelectionModel.java:68)
18-08-18 13:28:50.712 ERROR java.lang.Throwable - at javafx.scene.control.SingleSelectionModel.updateSelectedIndex(SingleSelectionModel.java:215)
18-08-18 13:28:50.712 ERROR java.lang.Throwable - at javafx.scene.control.SingleSelectionModel.select(SingleSelectionModel.java:149)
18-08-18 13:28:50.712 ERROR java.lang.Throwable - at com.sun.javafx.scene.control.skin.ComboBoxListViewSkin.lambda$createListView$323(ComboBoxListViewSkin.java:484)
18-08-18 13:28:50.712 ERROR java.lang.Throwable - at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:349)
18-08-18 13:28:50.713 ERROR java.lang.Throwable - at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
18-08-18 13:28:50.713 ERROR java.lang.Throwable - at javafx.beans.property.ReadOnlyIntegerPropertyBase.fireValueChangedEvent(ReadOnlyIntegerPropertyBase.java:72)
18-08-18 13:28:50.713 ERROR java.lang.Throwable - at javafx.beans.property.ReadOnlyIntegerWrapper.fireValueChangedEvent(ReadOnlyIntegerWrapper.java:102)
18-08-18 13:28:50.713 ERROR java.lang.Throwable - at javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:113)
18-08-18 13:28:50.714 ERROR java.lang.Throwable - at javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:147)
18-08-18 13:28:50.714 ERROR java.lang.Throwable - at javafx.scene.control.SelectionModel.setSelectedIndex(SelectionModel.java:68)
18-08-18 13:28:50.714 ERROR java.lang.Throwable - at javafx.scene.control.MultipleSelectionModelBase.select(MultipleSelectionModelBase.java:404)
18-08-18 13:28:50.714 ERROR java.lang.Throwable - at javafx.scene.control.MultipleSelectionModelBase.clearAndSelect(MultipleSelectionModelBase.java:356)
18-08-18 13:28:50.714 ERROR java.lang.Throwable - at javafx.scene.control.ListView$ListViewBitSetSelectionModel.clearAndSelect(ListView.java:1403)
18-08-18 13:28:50.715 ERROR java.lang.Throwable - at com.sun.javafx.scene.control.behavior.CellBehaviorBase.simpleSelect(CellBehaviorBase.java:256)
18-08-18 13:28:50.715 ERROR java.lang.Throwable - at com.sun.javafx.scene.control.behavior.CellBehaviorBase.doSelect(CellBehaviorBase.java:220)
18-08-18 13:28:50.716 ERROR java.lang.Throwable - at com.sun.javafx.scene.control.behavior.CellBehaviorBase.mousePressed(CellBehaviorBase.java:150)
18-08-18 13:28:50.716 ERROR java.lang.Throwable - at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:95)
18-08-18 13:28:50.716 ERROR java.lang.Throwable - at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
18-08-18 13:28:50.717 ERROR java.lang.Throwable - at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
18-08-18 13:28:50.717 ERROR java.lang.Throwable - at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
18-08-18 13:28:50.717 ERROR java.lang.Throwable - at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
18-08-18 13:28:50.717 ERROR java.lang.Throwable - at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
18-08-18 13:28:50.718 ERROR java.lang.Throwable - at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
18-08-18 13:28:50.718 ERROR java.lang.Throwable - at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
18-08-18 13:28:50.718 ERROR java.lang.Throwable - at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
18-08-18 13:28:50.719 ERROR java.lang.Throwable - at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
18-08-18 13:28:50.719 ERROR java.lang.Throwable - at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
18-08-18 13:28:50.719 ERROR java.lang.Throwable - at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
18-08-18 13:28:50.720 ERROR java.lang.Throwable - at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
18-08-18 13:28:50.720 ERROR java.lang.Throwable - at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
18-08-18 13:28:50.720 ERROR java.lang.Throwable - at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
18-08-18 13:28:50.721 ERROR java.lang.Throwable - at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
18-08-18 13:28:50.721 ERROR java.lang.Throwable - at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
18-08-18 13:28:50.721 ERROR java.lang.Throwable - at javafx.event.Event.fireEvent(Event.java:198)
18-08-18 13:28:50.721 ERROR java.lang.Throwable - at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
18-08-18 13:28:50.722 ERROR java.lang.Throwable - at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
18-08-18 13:28:50.722 ERROR java.lang.Throwable - at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
18-08-18 13:28:50.722 ERROR java.lang.Throwable - at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
18-08-18 13:28:50.722 ERROR java.lang.Throwable - at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:381)
18-08-18 13:28:50.723 ERROR java.lang.Throwable - at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
18-08-18 13:28:50.723 ERROR java.lang.Throwable - at java.security.AccessController.doPrivileged(Native Method)
18-08-18 13:28:50.723 ERROR java.lang.Throwable - at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:417)
18-08-18 13:28:50.723 ERROR java.lang.Throwable - at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
18-08-18 13:28:50.723 ERROR java.lang.Throwable - at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:416)
18-08-18 13:28:50.724 ERROR java.lang.Throwable - at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
18-08-18 13:28:50.724 ERROR java.lang.Throwable - at com.sun.glass.ui.View.notifyMouse(View.java:937)
18-08-18 13:28:50.724 ERROR java.lang.Throwable - at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
18-08-18 13:28:50.724 ERROR java.lang.Throwable - at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
18-08-18 13:28:50.725 ERROR java.lang.Throwable - at java.lang.Thread.run(Thread.java:748)
The gradeSummary class:
public class GradeSummary {
private BoardGrade grade;
private Integer pieceCount;
private Integer footage;
public GradeSummary(BoardGrade grade, Long pieceCount, Long footage) {
this.grade = grade;
this.pieceCount = pieceCount.intValue();
this.footage = footage.intValue();
}
public BoardGrade getGrade() {
return grade;
}
public Integer getPieceCount() {
return pieceCount;
}
public Integer getFootage() {
return footage;
}
}
And the field names for Board:
private LocalDateTime timeStamp;
private User grader;
private Species species;
private Integer length;
private Integer width;
private Integer surfaceMeasure;
private Integer thickness;
private Integer footBoardMeasure;
private BoardGrade grade;
private BoardModifier modifier;
private BigDecimal price;
private BigDecimal rate;
private Pack pack;
private Batch batch;
private PackDescriptor packDescriptor;
private BoardLoad boardLoad;