gpt4 book ai didi

java - Hibernate query.getResultList() 异常

转载 作者:行者123 更新时间:2023-12-01 15:49:18 24 4
gpt4 key购买 nike

query.getResultList() 对于以下代码段失败。

Query query=EntityManager.createQuery("select m from AbstractGasTrade m");
List<T> resultList = query.getResultList();

它抛出以下异常

javax.persistence.PersistenceException: org.hibernate.InstantiationException: Cannot instantiate abstract class or interface: com.pse.lib.trading.energy.naturalgas.AbstractGasTrade at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:614) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:76) at com.pse.lib.db.dao.GenericDao.findAll(GenericDao.java:68) at com.pse.lib.db.logic.GenericManager.findAll(GenericManager.java:75) at com.pse.lib.db.logic.GenericManager.findAll(GenericManager.java:86) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy29.findAll(Unknown Source) at com.pse.katana.services.possvc.PositionService.createPositionSegment(PositionService.java:180) at com.pse.katana.services.possvc.PositionService.handlePositionSubscription(PositionService.java:150) at com.pse.katana.services.possvc.PositionService.accept(PositionService.java:243) at com.pse.katana.messages.PositionSubscriptionRequest.visit(PositionSubscriptionRequest.java:43) at com.pse.katana.services.possvc.PositionService.dispatch(PositionService.java:266) at com.pse.lib.servicengine.processor.AsynchronousOperation.run(AsynchronousOperation.java:42) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: org.hibernate.InstantiationException: Cannot instantiate abstract class or interface: com.pse.lib.trading.energy.naturalgas.AbstractGasTrade at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:101) at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:123) at org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiate(AbstractEntityTuplizer.java:374) at org.hibernate.persister.entity.AbstractEntityPersister.instantiate(AbstractEntityPersister.java:3634) at org.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1302) at org.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1291) at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1323) at org.hibernate.loader.Loader.getRow(Loader.java:1230) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:603) at org.hibernate.loader.Loader.doQuery(Loader.java:724) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259) at org.hibernate.loader.Loader.doList(Loader.java:2228) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125) at org.hibernate.loader.Loader.list(Loader.java:2120) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:361) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1148) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:67) ... 23 more

当连接列之一具有空值时会发生这种情况。

@JoinColumn(name = "PayDescriptor")
@ManyToOne(cascade = CascadeType.ALL)
private GasTradeDescriptor tradePriceDescriptor;

问题是我们想要忽略连接列具有空值的值,并想要继续加载剩余的非空值。对于空值,我们只想记录消息。我们不确定解决这个问题的最佳方法。任何有关最佳方法的想法或建议将不胜感激。

提前非常感谢。

拉布

最佳答案

正如异常所述,您无法实例化抽象类。您没有包含 AbstractGasTrade 的代码,但名称确实暗示它实际上是抽象的。

您需要为其具体子项之一创建查询。

关于java - Hibernate query.getResultList() 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6446196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com