简体   繁体   English

无法通过反射getter和查询来求和一个字段,以求纯Hibernate中的多列求和

[英]could not get a field value by reflection getter and query to sum multiple columns in pure Hibernate

I have written this query but getting problem with this query. 我已经写了这个查询,但是这个查询遇到了问题。 and i want to write that query in Hibernate. 我想在休眠中编写该查询。

Query getActivoCrtTotalquery = (Query) session
                .createQuery("select sum(a.servicios_por_pagares)+sum(a.producto_en_processo)+sum(a.materia_prima)+sum(a.moteriales)+sum(a.marcaderia_en_transito)+sum(a.mercaderia)+sum(a.productos_terminado) from Activocrt_Master a where a.dni=:dni" );

        getActivoCrtTotalquery.setParameter("dni", dni);
                List list = getActivoCrtTotalquery.list();
            result = (double) list.get(0);
            session.close();

Exception : 例外情况

org.hibernate.PropertyAccessException: could not get a field value by reflection getter of com.caja.creditprocess.hbmfiles.Doi_Master.dni at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:35) at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:183) at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3596) at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:3312) at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181) at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:218) at org.hibernate.type.EntityType.getIdentifier(EntityType.java:397) at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:87) at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:38) at org.hibernate.loader.hql.QueryLoader.bindParameterValues( org.hibernate.PropertyAccessException:无法通过org.hibernate.property.DirectPropertyAccessor $ DirectGetter.get(DirectPropertyAccessor.java:35)上的com.caja.creditprocess.hbmfiles.Doi_Master.dni的反射获取器来获取字段值org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3596)的.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:183)org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java :3312)位于org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181)位于org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:218)位于org.hibernate.type.EntityType.getIdentifier(EntityType。 org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:87)的org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:38)的org.hibernate.loader.hql.QueryLoader.bindParameterValues的java:397) ( QueryLoader.java:491) at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1563) at org.hibernate.loader.Loader.doQuery(Loader.java:673) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) at org.hibernate.loader.Loader.doList(Loader.java:2213) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104) at org.hibernate.loader.Loader.list(Loader.java:2099) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) at com.caja.creditprocess.daoimpl.EvaluationDAOImpl.getActivoCrtTotal(EvaluationDAOImpl.java:302) at com.caja.creditprocess.managerimpl.EvaluationManagerImpl.saveActivo(EvaluationManagerImpl.java:278) at sun.reflect.NativeMethodAccessorImpl. org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1563)的org.hibernate.loader.Loader.doQuery(Loader.java:673)的org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections的QueryLoader.java:491) (Loader.java:236)在org.hibernate.loader.Loader.doList(Loader.java:2213)在org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)在org.hibernate.loader.Loader。在org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)的列表(Loader.java:2099)在org.hibernate的org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)的list(QueryLoader.java:378) org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)的org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)的.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172) com.caja.creditprocess.managerimpl.EvaluationManagerImpl.saveActivo(EvaluationManagerImpl.java:278)上的com.caja.creditprocess.daoimpl.EvaluationDAOImpl.getActivoCrtTotal(EvaluationDAOImpl.java:302)在sun.reflect.NativeMethodAccessorImpl。 invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) at com.sun.proxy.$Proxy28.saveActivo(Unknown Source) at EvaluationTest.sendActivoDetails(EvaluationTest.java:150) at sun.ref 调用sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)上的invoke0(本机方法),调用java.lang.reflect.Method.invoke(Method.java:上的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)上的498)在org.springframework.aop.framework的org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)在org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)在org.springframework.aop.framework。在org.org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)在org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)上的.proceed(ReflectiveMethodInvocation.java:157)在com.sun.proxy。$ Proxy28.saveActivo(Unknown Source)处的com.sun.proxy.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)在sun.ref的EvaluationTest.sendActivoDetails(EvaluationTest.java:150)处 lect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) at org.springframework. lect.NativeMethodAccessorImpl.invoke0(本地方法)位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.invoke(在org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall(FrameworkMethod.java:47)处的org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)处的Method.java:498)。在org.junit.internal.runners.statements的junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)在org.springframework.test.context.junit4.statement的InvokeMethod.evaluate(InvokeMethod.java:17)。在org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)在org.springframework.test.context.junit4.statements.SpringRepeat.evaluate处的RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) SpringRepeat.java:72),网址为org.springframework。 test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4Te 在org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)的test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)在org.junit.runners.ParentRunner $ 3.run(ParentRunner.java:238) )在org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:63)在org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)在org.junit.runners.ParentRunner.access $ 000(ParentRunner。的org.junit.runners.ParentRunner中的java:53)在org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)处的org.springframework.test.context.junit4.statements。 test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)在org.junit.runners.ParentRunner.run(ParentRunner.java:309)在org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run( SpringJUnit4ClassRunner.java:174),位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4Te stReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) Caused by: java.lang.IllegalArgumentException: Can not set java.lang.String field com.caja.creditprocess.hbmfiles.Doi_Master.dni to java.lang.String at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:58) at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36) org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)的org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:的stReference.java:50): 459),位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)上的org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) .eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)原因:java.lang.IllegalArgumentException:无法设置java.lang.String字段com.caja.creditprocess.hbmfiles.Doi_Master.dni到sun.reflect.UnsafeFieldAccessorImpl.java:171处的sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)的java.lang.String处sun.reflect.UnsafeFieldAccessorImpl。 )在sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36) at java.lang.reflect.Field.get(Field.java:393) at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:32) ... 62 more 在org.hibernate.property.DirectPropertyAccessor $ DirectGetter.get(DirectPropertyAccessor.java:32)处java.lang.reflect.Field.get(Field.java:393)... 62更多

My Entities are 我的实体是

  @Entity
@Table(name="Activocrt_Master")
public class Activocrt_Master implements Serializable{

    @Id
    @Column(name="activocrt_master_id")
    private String activocrt_master_id;

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name="dni")
    private Doi_Master dni;


    @Column(name="servicios_por_pagares")
    private double servicios_por_pagares;

    @Column(name="producto_en_processo")
    private double producto_en_processo;

    @Column(name="materia_prima")
    private double materia_prima;

    @Column(name="moteriales")
    private double moteriales;

    @Column(name="marcaderia_en_transito")
    private double marcaderia_en_transito;

    @Column(name="mercaderia")
    private double mercaderia;

    @Column(name="productos_terminado")
    private double productos_terminado;

//setters and getters

}

Doi_Master.java Doi_Master.java

@Entity
@Table(name="Doi_Master")
public class Doi_Master implements Serializable{

    @Id
    @Column(name="dni")
    private String dni;

//setters and getters
}

Finally i found the answer for my question. 终于我找到了我问题的答案。 In my query i added dni, but hibernate is confusing to take which dni. 在我的查询中,我添加了dni,但是休眠使哪个dni令人困惑。 i just changed private Doi_Master dni; 我刚刚更改了private Doi_Master dni; to private Doi_Master xyz; private Doi_Master xyz; so it worked for me.Thanks for the help.... 所以对我有用。谢谢您的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 JPA-Hibernate-“无法通过继承的反射获取器获取字段值 - JPA-Hibernate - “could not get a field value by reflection getter of with inheritance PropertyAccessException:使用Hibernate时无法通过反射getter获取字段值 - PropertyAccessException: could not get a field value by reflection getter While using Hibernate org.hibernate.PropertyAccessException:无法通过反射getter获取字段值 - org.hibernate.PropertyAccessException: could not get a field value by reflection getter of 休眠-此映射正确吗? 无法通过反射吸气剂获得字段值? - Hibernate - Is this mapping correct? could not get a field value by reflection getter? PropertyAccessException:无法通过反射获取器获取字段值 - PropertyAccessException: could not get a field value by reflection getter 无法通过反射getter获取字段值 - Could not get a field value by reflection getter 错误:-org.hibernate.PropertyAccessException:无法通过反射获取器获取字段值 - Error :- org.hibernate.PropertyAccessException: could not get a field value by reflection getter 简单的Hibernate应用程序无法正常工作:PropertyAccessException:无法通过反射getter获取字段值 - Simple Hibernate Application not working: PropertyAccessException: could not get a field value by reflection getter of 无法通过反射休眠获取字段值 - could not get a field value by reflection hibernate Hibernate / JPA:无法通过反射设置器设置字段值 - Hibernate/JPA: could not set a field value by reflection setter
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM