2016-10-11 13 views
2

私はEntityManagerは以下のように奇妙なエラーを投げている、名前branchとモデルクラスとテーブルを私はid 515には、getSingleResultを行うとEntityNotFoundException場合でも

されてい

Query query = getEntityManager() 
    .createNativeQuery(
     "SELECT * FROM branch t where t.enabled=true and t.id = :value1", 
     Branch.class); 
query.setParameter("value1", id); 
branch = (Branch) query.getSingleResult(); 

のStackTrace:

javax.persistence.EntityNotFoundException:com.urbanbuz.model.Brを見つけることができません。 org.hibernate.ejb.Ejb3Configuration $ Ejb3EntityNotFoundDelegate.handleEntityNotFound(Ejb3Configuration.java:155)org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:210)で org.hibernateで でID 982 とANCH。 (SessionImpl.java:SessionImpl.java:SessionLoadEventListener.java:148) にあるorg.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148) で、 (EntityType.java:651) at org.hibernate.type.EntityType.resolve() EntityType.java:471)org.hibernate.loader.Loaderの 。 initializeEntitiesAndCollections(Loader.java:1103) at org.hibernate.loader.Loader.processResultSet(Loader.java:960) at org.hibernate.loader.Loader.doQuery(Loader.java:910) at org.hibernate。 org.hibernate.loader.Loader.loadEntity(Loader.java:2111) でorg.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:311) でloader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341) でorg.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)(AbstractEntityPersister.java:3887) at org.hibernate.event.internal。 DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458) at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427) at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204) at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260) at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148) at org.hibernate.internal.SessionImpl。 fireLoad( (SessionImpl.java:1078) at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:651) at org.hibernate.type。 EntityType.resolve(EntityType.java:471) at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:168) at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:134) でorg.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1103)org.hibernate.loader.Loader.doQueryでorg.hibernate.loader.Loader.processResultSet(Loader.java:960) (ローダで 。 (ローダー。java:341) at org.hibernate.loader.Loader.doList(Loader.java:2516) at org.hibernate.loader.Loader.doList(Loader.java:2502) at org.hibernate.loader.Loader。 listIgnoreQueryCache(Loader.java:2332) at org.hibernate.loader.Loader.list(Loader.java:2327) at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:338) at org。 hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:1783) at org.hibernate.internal.AbstractSessionImpl.list(AbstractSessionImpl.java:231) at org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:157) at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:283) at com.urbanbuz.dao.BranchDAO.findById(BranchDAO.j ava:110) com.urbanbuz.dao.BranchDAO $$ FastClassBySpringCGLIB $$ 47398e8.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop org.springframework.transaction.interceptor.TransactionInterceptor $ 1.proceedWithInvocationで.framework.CglibAopProxy $ CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:717)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)で ( (TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:267) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)org.springframework.aop.framework.CglibAopProxy $ DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:653)com.urbanbuz.daoで で で。日でcom.urbanbuz.component.SignupComponent.signUpUpload(SignupComponent.java:3030) でcom.urbanbuz.service.BranchService.getBranch(BranchService.java:42) でBranchDAO $$ $$ EnhancerBySpringCGLIB b0e2bae8.findById() java.lang.reflect.Method.invoke(Method.java:498)com.urbanbuzで でsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で.reflect.GeneratedMethodAccessor1180.invoke(不明なソース) 。 mq.MessageProcessor.processMessage(Message sun.reflect.DelegatingMethodAccessorImpl.invokeでsun.reflect.GeneratedMethodAccessor369.invoke(不明なソース) でcom.urbanbuz.mq.CoreController.handleOrder(CoreController.java:22) でProcessor.java:112) (DelegatingMethodAccessorImpl.java :43) at java.lang.reflect.Mavod.invoke(Method.java:498) at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:269) at org.springframework.amqp.rabbit.listener .adapter.MessageListenerAdapter.invokeListenerMethod(MessageListenerAdapter.java:327) at org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter.onMessage(MessageListenerAdapter.java:253) at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer .doInvokeListener(AbstractMessageLis org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access $ 001でorg.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:617) でtenerContainer.java:694) (SimpleMessageListenerContainer.java:82組織でorg.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.invokeListenerでorg.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer $ 1.invokeListener(SimpleMessageListenerContainer.java:167) (SimpleMessageListenerContainer.java:1196) で) 。プロパティの値を取得するには、次のようにします。org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access $ 700からorg.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.receiveAndExecute(SimpleMessageListenerContainer.java:944) でdoReceiveAndExecute(SimpleMessageListenerContainer.java:960) (SimpleMessageListenerContainer.java :org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer $ AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1058)java.lang.Thread.runで (Thread.java:745)の82)

感謝あらかじめ!

+0

あなたはid = 515だがエラーはid = 982だと言った。 "javax.persistence.EntityNotFoundException:id 982のcom.urbanbuz.model.Branchを見つけることができません" – abaghel

+0

はい、このエラーはID 515のID 982としてスローされます。そのため私はこのエラーをweird.The他のidsは正常に動作します。 –

+0

申し訳ありませんが、それは愚かな質問ですが、データベース上で直接実行するときにクエリを与えるものは何ですか?オブジェクトが見つかると予想される場合など、参照エラーのように見えます。 –

答えて

0

Branch.classにはDevice.java(デバイステーブル)との間違ったマッピングがあり、deviceテーブルには存在しないbranchId 982のエントリがあります。 Device.javaの間違ったマッピングを削除し、デバイステーブルの間違ったレコードを削除することで問題が解決しました。