hibernate-用hql语句删除的时候执行dao层方法报这个错误,哪位大神帮我分析下错误原因,多谢

问题描述

用hql语句删除的时候执行dao层方法报这个错误,哪位大神帮我分析下错误原因,多谢

org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: java.util.ArrayList; nested exception is org.hibernate.MappingException: Unknown entity: java.util.ArrayList
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:683) ~[spring-orm-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) ~[spring-orm-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411) ~[spring-orm-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) ~[spring-orm-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.delete(HibernateTemplate.java:837) ~[spring-orm-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.delete(HibernateTemplate.java:833) ~[spring-orm-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at com.sunyard.audit.model.modelplat.TranCodeDAO.delete(TranCodeDAO.java:41) ~[TranCodeDAO.class:na]
at com.sunyard.audit.model.modelplat.TranCodeDAO$$FastClassByCGLIB$$7fffcc57.invoke() [cglib-nodep-2.2.2.jar:na]
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) [cglib-nodep-2.2.2.jar:na]
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) [spring-aop-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) [spring-aop-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) [spring-tx-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) [spring-aop-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at com.sunyard.audit.model.modelplat.TranCodeDAO$$EnhancerByCGLIB$$82df1988.delete() [cglib-nodep-2.2.2.jar:na]
at com.sunyard.audit.service.ModelSetService.isEmpty(ModelSetService.java:2729) [ModelSetService.class:na]
at com.sunyard.audit.service.ModelSetService$$FastClassByCGLIB$$9179a7b.invoke() [cglib-nodep-2.2.2.jar:na]
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) [cglib-nodep-2.2.2.jar:na]
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) [spring-aop-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) [spring-aop-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) [spring-tx-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) [spring-aop-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at com.sunyard.audit.service.ModelSetService$$EnhancerByCGLIB$$edc70d4.isEmpty() [cglib-nodep-2.2.2.jar:na]
at com.sunyard.audit.struts.ModelSetAction.managerEntrySetting(ModelSetAction.java:686) [ModelSetAction.class:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_02]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_02]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_02]
at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_02]
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270) [struts.jar:1.2.9]
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187) [struts.jar:1.2.9]
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) [struts.jar:1.2.9]
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) [struts.jar:1.2.9]
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) [struts.jar:1.2.9]
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) [struts.jar:1.2.9]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) [servlet-api.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
at com.sunyard.audit.filter.LoginFilter.doFilter(LoginFilter.java:80) [LoginFilter.class:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
at com.sunyard.audit.filter.EncodingFilter.doFilter(EncodingFilter.java:43) [EncodingFilter.class:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
at com.sunyard.audit.filter.EncodingFilter.doFilter(EncodingFilter.java:43) [EncodingFilter.class:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
at com.sunyard.audit.filter.ResourceCacheFilter.doFilter(ResourceCacheFilter.java:125) [ResourceCacheFilter.class:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) [catalina.jar:na]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [catalina.jar:na]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) [catalina.jar:na]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [catalina.jar:na]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [catalina.jar:na]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) [catalina.jar:na]
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857) [tomcat-coyote.jar:na]
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565) [tomcat-coyote.jar:na]
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509) [tomcat-coyote.jar:na]
at java.lang.Thread.run(Thread.java:619) [na:1.6.0_02]
Caused by: org.hibernate.MappingException: Unknown entity: java.util.ArrayList
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:514) ~[hibernate3.jar:na]
at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1302) ~[hibernate3.jar:na]
at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:59) ~[hibernate3.jar:na]
at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:761) ~[hibernate3.jar:na]
at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:739) ~[hibernate3.jar:na]
at org.springframework.orm.hibernate3.HibernateTemplate$25.doInHibernate(HibernateTemplate.java:843) ~[spring-orm-3.1.0.RELEASE.jar:3.1.0.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406) ~[spring-orm-3.1.0.RELEASE.jar:3.1.0.RELEASE]
... 58 common frames omitted
09:42:49 c.s.a.s.BaseAction ERROR - Unknown entity: java.util.ArrayList; nested exception is org.hibernate.MappingException: Unknown entity: java.util.ArrayList
org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: java.util.ArrayList; nested exception is org.hibernate.MappingException: Unknown entity: java.util.ArrayList
Caused by: org.hibernate.MappingException: Unknown entity: java.util.ArrayList

解决方案

删除方法传的参数不对。getHibernateTemplate().delete() 方法,参数是要删除的实体对象。你应该把实体列表遍历再单个传入删除。

解决方案二:

dao方法和调用都贴出来

解决方案三:

service层抽象方法
public void isEmpty(TranCode tc,String id);

service层抽象方法实现类,调用dao层delete方法
public void isEmpty(TranCode tc,String id){
    List<TranCode> trans = tranCodeDAO.findByModelId(id);
    if(trans.size()<=0){
        tranCodeDAO.save(tc);
    }else{
        tranCodeDAO.delete(trans);
        tranCodeDAO.save(tc);
    }
}

TranCode实体类
public class TranCode implements java.io.Serializable{

private String modelId;
private String code;
public String getModelId() {
    return modelId;
}
public void setModelId(String modelId) {
    this.modelId = modelId;
}
public String getCode() {
    return code;
}
public void setCode(String code) {
    this.code = code;
}

解决方案四:

第一次见,删除直接传集合的!!!

解决方案五:

        tranCodeDAO.delete(trans);
        这段是几个意思,,改成这样:
        for(TranCode  tc:trans){
            tranCodeDAO.delete(tc);
        }
时间: 2024-08-03 05:32:29

hibernate-用hql语句删除的时候执行dao层方法报这个错误,哪位大神帮我分析下错误原因,多谢的相关文章

哪位大神帮我看下hql修改语句出错

问题描述 哪位大神帮我看下hql修改语句出错 通过userName,来修改nickName:不知道为什么hql语句一执行就出错了?难道说hql语句写的不正确?希望大神帮我看看. 解决方案 很明显是没有给占位符赋值,query.setString("nickName1","test");query.setString("userName1","test"); 解决方案二: 错误

x-我是个菜鸟哪位大神帮我看看这个代码为什么怎么点击都不会执行下面的else 急急急

问题描述 我是个菜鸟哪位大神帮我看看这个代码为什么怎么点击都不会执行下面的else 急急急 iv.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // AB| = √[(x?-x?)?+(y?-y?)?],换成x?-x?和y?-y? switch (event.getAction()) { case MotionEvent.ACTION

mysql-哪位大神告诉我这个sql怎么优化,有执行计划图

问题描述 哪位大神告诉我这个sql怎么优化,有执行计划图 EXPLAIN SELECT *, CAST(prorder.deliveryfeedback as char) as deliveryfeedback, CAST(prorder.pocreatedate as char) as pocreatedate FROM ( SELECT request.fnumber, request.purtaskid, rd.request_detail_id, rd.request_id, item.

java学生信息管理系统在删除信息的时候遇到了问题,代码如下,求大神。

问题描述 java学生信息管理系统在删除信息的时候遇到了问题,代码如下,求大神. 这是代码 主类 public class Main { public static void main(String[] args) throws FileNotFoundException { int i = 0; Manage m=new Manage(); Scanner sc=new Scanner(System.in); ArrayList List=new ArrayList<Student>();

需要写一个SQL语句,大神帮我吧!在线等

问题描述 需要写一个SQL语句,大神帮我吧!在线等 我有一张产品供货价的表ProductPrice,该表有五个字段,分别是id,ProductID(外键关联产品ID),ChannelID(外键关联渠道ID),CustomerTypeID(外键关联客户类型ID),PriceSupply(供货价), 该表有三个外键,我最终的目的是得到该外键对应的供货价,其中一个ID变了供货价肯定就变了.看一下该表的的结构和数据. 但是我页面上只有两个下拉框控件,一个是客户,一个是产品.我只能拿到这两个对应的ID,渠

sql server-求助大神一个ASP.NET下增加删除数据的问题,真心请教!

问题描述 求助大神一个ASP.NET下增加删除数据的问题,真心请教! public partial class _Default : System.Web.UI.Page { string constr = "server=192.168.1.113;database=HH;Uid=sa;pwd=000000;"; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Bind(); } }

rcale游标超出-hibernate处理的数据量太多,会报游标超出的错误。求大神帮忙

问题描述 hibernate处理的数据量太多,会报游标超出的错误.求大神帮忙 public List getMessageCount(String agentIdDate detectingTimeDate endTime) { StringBuffer sbf = new StringBuffer(); sbf.append(""select targetAddresssourceaddress count(targetAddress) from VpnRecord where 1=

using-为什么ASP.NET程序运行时不执行,也不报错?急急,哪位大蚁帮我一把戏?

问题描述 为什么ASP.NET程序运行时不执行,也不报错?急急,哪位大蚁帮我一把戏? 点发布时,屏幕闪一下,没有任何提示,不进行验证,也没有加到SQL2005库中! 前台: <%@ Page Language="C#" validateRequest="false" CodeFile="kjxm_Edit.aspx.cs" Inherits="As_Tzxm_Edit" %> <%@ Register Tag

求大神帮我写一条查询增量的sql语句

问题描述 求大神帮我写一条查询增量的sql语句 如图,我有这些字段,每天都会插入一些数据 我现在需要获取的内容是 今天的read,click数据,和今天的减昨天的差值,和aid,规则如图 求大神帮我写一个 解决方案 SELECT SUM(d.read_num) AS READ, SUM(d.click_num) AS click, SUM(d.read_num - t.read_num) AS diffREAD, SUM(d.click_num - t.click_num) AS diffcli