Hello @Moses_Mutesasira, @mherman22, @tasksolver, I’ve been writing tests for the TestReflexService class, but this public ReflexRule getReflexRuleByAnalyteId(String analyteId) throws LIMSRuntimeException breaks even before reaching the Assertion stage.
I tried debugging it and it looks like there problem lies here: String sql = "from ReflexRule r WHERE r.analyteId = :analyteId"; because ReflexRule has no hibernate mapping and its not a table too.
Please, I need some advice on how to fix this in order to continue with the tests.
Error logs
Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:757)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:848)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:114)
at org.openelisglobal.testreflex.daoimpl.ReflexRuleDAOImpl.getReflexRuleByAnalyteId(ReflexRuleDAOImpl.java:25)
... 49 more
Okay, though I’ve added it to the list of entities as suggested but am still facing the same problem
Error logs
23 Jun 2025 18:04:26 -- ERROR -- Class: org.hibernate.internal.ExceptionConverterImpl, Method: convert, Line: 138, Message: org.hibernate.QueryException: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
Class: org.hibernate.QueryException, Method: generateQueryException, Line: 120, Sub-Message: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
Class: org.hibernate.hql.internal.classic.FromParser, Method: token, Line: 158, Sub-Message: in expected: r
23 Jun 2025 18:04:26 -- ERROR -- Class: org.hibernate.internal.ExceptionConverterImpl, Method: convert, Line: 138, Message: org.hibernate.QueryException: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
Class: org.hibernate.QueryException, Method: generateQueryException, Line: 120, Sub-Message: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
Class: org.hibernate.hql.internal.classic.FromParser, Method: token, Line: 158, Sub-Message: in expected: r
org.openelisglobal.common.exception.LIMSRuntimeException: Error in ReflexRuleDAOImpl getReflexRuleByAnalyteId()
at org.openelisglobal.common.daoimpl.BaseDAOImpl.handleException(BaseDAOImpl.java:768)
at org.openelisglobal.testreflex.daoimpl.ReflexRuleDAOImpl.getReflexRuleByAnalyteId(ReflexRuleDAOImpl.java:32)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:380)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223)
at jdk.proxy2/jdk.proxy2.$Proxy464.getReflexRuleByAnalyteId(Unknown Source)
at org.openelisglobal.testreflex.service.TestReflexServiceImpl.getReflexRuleByAnalyteId(TestReflexServiceImpl.java:311)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:216)
at jdk.proxy2/jdk.proxy2.$Proxy465.getReflexRuleByAnalyteId(Unknown Source)
at org.openelisglobal.testreflex.TestReflex.testGetReflexRuleByAnalyteId(TestReflex.java:24)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:76)
at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:231)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:757)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:848)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:114)
at org.openelisglobal.testreflex.daoimpl.ReflexRuleDAOImpl.getReflexRuleByAnalyteId(ReflexRuleDAOImpl.java:25)
... 49 more
Caused by: org.hibernate.QueryException: in expected: r [from ReflexRule r WHERE r.analyteId = :analyteId]
at org.hibernate.QueryException.generateQueryException(QueryException.java:120)
at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:103)
at org.hibernate.hql.internal.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:250)
at org.hibernate.hql.internal.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:204)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:112)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:162)
at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:636)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:748)
... 52 more
Caused by: org.hibernate.QueryException: in expected: r
at org.hibernate.hql.internal.classic.FromParser.token(FromParser.java:158)
at org.hibernate.hql.internal.classic.ClauseParser.token(ClauseParser.java:93)
at org.hibernate.hql.internal.classic.PreprocessingParser.token(PreprocessingParser.java:118)
at org.hibernate.hql.internal.classic.ParserHelper.parse(ParserHelper.java:43)
at org.hibernate.hql.internal.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:240)
... 58 more