查询未返回唯一结果

查询未返回唯一结果

本文介绍了org.hibernate.NonUniqueResultException:查询未返回唯一结果:462的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我正在使用SpringMVC开发Spring应用程序,我遇到了以下错误,我不知道如何处理它。 现在我在Console中有这个消息: org.hibernate.TypeMismatchException:提供了错误类型的id。预期:类java.lang.Integer,类org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:86)$ b $在org.hibernate.impl类java.lang.String 。 SessionImpl.fireLoad(SessionImpl.java:878)在org.hibernate.impl.SessionImpl.load(SessionImpl.java:795)在org.hibernate.impl.SessionImpl.load(SessionImpl.java:在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(来源不明)在sun.reflect.DelegatingMethodAccessorImpl.invoke(来源不明788)) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.context.ThreadLocalSessionContext $ TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:301) at com.sun。代理$ Proxy11.load(来源不明)在com.my.dao.DepartementImplDB.getDepartementByNom(DepartementImplDB.java:54)在com.my.dao.DepartementImplDB.addDepartement(DepartementImplDB.java: 29)在com.my.service.Departem entImplMetier.create(DepartementImplMetier.java:57) at com.my.controller.ImportController.Read(ImportController.java:279) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source)在org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)处使用org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)在org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod)(AnnotationMethodHandlerAdapter.java:414)在org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter上.java:402)在org.springframework.web.servlet.DispatcherServlet.doDispatch(Dispatch erServlet.java:771)在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716 )在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java: at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563) at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)在javax.servlet.http.HttpServlet.service(HttpServlet.java:729)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 在org.apache.catalina .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core .ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)在org.apache.catalina.core.StandardWrapperValve.invoke (标准WrapperValve.java:219)在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106 )在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java: 502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) at org.apache.coyote .AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:668) at org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1521) at org.apache.tomcat .util.net.NioEndpoint $ Socke tProcessor.run(NioEndpoint.java:1478)在java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)在java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知源) at org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)$ b $ at java.lang.Thread.run(Unknown Source) 这是我的ImportController类 / ** * @author Ilias * / package com.my.controller; //导入... 导入com.my.dao.Departement; @Controller public class ImportController { DepartementImplMetier dbD = new DepartementImplMetier(); $ b @RequestMapping(value =/ read) public String Read(Model model,@ RequestParam CommonsMultipartFile [] fileUpload) throws IOException,EncryptedDocumentException,InvalidFormatException ,java.text.ParseException { liste = extraire(modelnom); for(int m = 0,i = 29; i< liste.size(); i = i + 29){// i = i + 29 Employe employe = new Employe(); 部门部门=新部门(); if(i%29 == 0)m ++; // ...这里的一些代码 String dep =(String)liste.get(29 * m + 13).toString(); 部门d =新部门(); departement.setNomDepartement(dep); 布尔值bool = true; 列表< Departement> departements = dbD.getAll(); 布尔型depbool = true; for(int j = 0; j< departements.size(); j ++){ if(departements.get(j).getNomDepartement()== dep) { depbool = false; } if(depbool){ try { dbD.create(departement); } catch(Throwable e){ e.printStackTrace(); $ b for(int n = 0; n if(employes.get (n).getMatriculeMY()==(int)mat) { bool = false; if(bool){ try { dbD.create(departement); dbE.create(employe); } catch(Throwable e){ e.printStackTrace(); } } } } 返回重定向; }} } 这是我的Employe.hbm.xml p> <?xml version =1.0?> <!DOCTYPE hibernate-mapping PUBLIC - // Hibernate / Hibernate映射DTD 3.0 // ENhttp://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\"> ; <! - 由Hibernate Tools 3.4.0.CR1生成的5 ao?t 2015 11:05:44 - > < hibernate-mapping> < class name =com.my.dao.Employetable =EMPLOYE> < id name =idtype =int> < column name =ID/> < generator class =native/> < / id> < property name =nomEmployetype =java.lang.String> < column name =NOMEMPLOYE/> < / property> < property name =prenomEmployetype =java.lang.String> < column name =PRENOMEMPLOYE/> < / property> < property name =matriculeMYtype =int> < column name =MATRICULEMY/> < / property> < property name =adressetype =java.lang.String> < column name =ADRESSE/> < / property> < property name =sexetype =java.lang.String> < column name =SEXE/> < / property> < property name =cintype =java.lang.String> < column name =CIN/> < / property> < property name =dateNaissancetype =java.lang.String> < column name =DATENAISSANCE/> < / property> < property name =situationFamilialetype =java.lang.String> < column name =SITUATIONFAMILIALE/> < / property> < property name =dateEntreetype =java.lang.String> < column name =DATEENTREE/> < / property> < property name =dateSortietype =java.lang.String> < column name =DATESORTIE/> < / property> < property name =numCIMRtype =java.lang.String> < column name =NUMCIMR/> < / property> < property name =numCNSStype =java.lang.String> < column name =NUMCNSS/> < / property> < property name =numMUTtype =java.lang.String> < column name =NUMMUT/> < / property> < property name =profiletype =java.lang.String> < column name =PROFILE/> < / property> < property name =resteCongetype =java.lang.String> < column name =RESTECONGE/> < / property> < property name =banquetype =java.lang.String> < column name =BANQUE/> < / property> < property name =numCpteBanctype =java.lang.String> < column name =NUMCPTEBANC/> < / property> <! - < property name =fonctiontype =java.lang.String> < column name =FONCTION/> < / property> - > < property name =salairetype =float> < column name =SALAIRE/> < / property> < property name =indTransporttype =float> < column name =INDTRANSPORT/> < / property> < property name =indRepresenttype =float> < column name =INDREPRESENT/> < / property> < property name =indPaniertype =float> < column name =INDPANIER/> < / property> < column name =EDEPARTEMENT/> < /多对一> < column name =EFONCTION/> < /多对一> < column name =ESERVICE/> < /多对一> < column name =ETYPEPAIEMENT/> < /多对一> < column name =EMODEPAIEMENT/> < /多对一> < / class> < / hibernate-mapping> 这是我的Departement.hbm.xml <?xml version =1.0?> <!DOCTYPE hibernate-mapping PUBLIC - // Hibernate / Hibernate映射DTD 3.0 // ENhttp://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\"> ; <! - 由Hibernate Tools 3.4.0.CR1生成的5 ao?t 2015 11:05:44 - > < hibernate-mapping> < class name =com.my.dao.Departementtable =DEPARTEMENT> < id name =idtype =int> < column name =ID/> < generator class =native/> < / id> < property name =nomDepartementtype =java.lang.String> < column name =NOMDEPARTEMENT/> < / property> < set name =Employeinverse =true> < key column =IDnot-null =true/> < / set> < / class> < / hibernate-mapping> 调试完成后,问题出现在这里: 布尔型depbool = true; for(int j = 0; j< departements.size(); j ++){ if(departements.get(j).getNomDepartement()== dep) { depbool = false; } if(depbool){ try { dbD.create(departement); } catch(Throwable e){ e.printStackTrace(); } } } exactely here: dbD.create(departement); b $ b $ p package com.my.dao; import java.util.List; import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; import com.my.util.HibernateUtil; / ** * @author Ilias * * / public class DepartementImplDB implements DepartementDao { / ** * @ com.my.dao.DepartementDao#addDepartement(com.my.dao.Departement) * / @Override public int addDepartement( Departement D){ // TODO自动生成方法存根 会话会话= HibernateUtil.getInstance()。getSessionFactory()。getCurrentSession(); session.beginTransaction(); System.out.println(********); session.save(D); System.out.println(departement implement metier); session.getTransaction()。commit(); D = this.getDepartementByNom(D.getNomDepartement()); return D.getId(); } / ** * @ com.my.dao.DepartementDao#getDepartementById(int) * / @Override publicDepartement getDepartementById(int id){ // TODO自动生成的方法存根 Session session = HibernateUtil.getInstance()。getSessionFactory()。getCurrentSession(); 部门部门=新部门(); 尝试{ session.beginTransaction(); dept =(Departement)session.load(Departement.class,id); } catch(HibernateException e){ //LOGGER.error(e); e.printStackTrace(); if(session.getTransaction()。isActive()){ session.getTransaction()。rollback(); } } return dept; } / ** * @ com.my.dao.DepartementDao#getDepartementByNom(java.lang.String) * / @覆盖 public Departement getDepartementByNom(String nomDepartement){ Session session = HibernateUtil.getInstance()。getSessionFactory()。getCurrentSession(); 部门结果=新部门(); 尝试{ session.beginTransaction(); Criteria criteria = session.createCriteria(Departement.class); criteria.add(Restrictions.eq(nomDepartement,nomDepartement).ignoreCase()); result =(Departement)criteria.uniqueResult(); session.getTransaction()。commit(); catch(HibernateException e){ //LOGGER.error(e); e.printStackTrace(); if(session.getTransaction()。isActive()){ session.getTransaction()。rollback(); } } 返回结果; } / ** * @ com.my.dao.DepartementDao#deleteDepartement(int) * / @覆盖 public void deleteDepartement(int id){ // TODO自动生成的方法存根 Session session = HibernateUtil.getInstance()。getSessionFactory()。getCurrentSession(); session.beginTransaction(); Departement dept =(Departement)session.load(Departement.class,id); session.delete(dept); session.getTransaction()。commit(); } / ** * @ com.my.dao.DepartementDao#updateDepartement(com.my.dao.Departement) * / @Override public void updateDepartement(Departement D){ // TODO自动生成的方法存根 } / * * * @see com.my.dao.DepartementDao#getAllDepartement() * / @Override public List< Departement> getAllDepartement(){ // TODO自动生成的方法存根 Session session = HibernateUtil.getInstance()。getSessionFactory()。getCurrentSession(); session.beginTransaction(); return session.createQuery(from Departement)。list(); $ b $ p $ b $ p这是我想要做的事情(UML): imgur 这是我最后一次错误链接的更多信息:链接 有人可以帮忙吗? 解决方案您的问题真是一团糟......但是如果您阅读了异常: 提供了错误类型的ID。 预期的:类java.lang。 Integer ,获得类 java.lang。 String 在看了 Departement 类之后,它只有2个字段和一个集合(根据hibernate映射): int id; String nomDepartament; 设置员工; 这只能表示您传递 nomDepartament 字段而不是 id 在你的代码中的某处... 但是,就你不提供的 Departement 类或 DepartementImplMetier.create()方法,这是造成我不能说更多的异常的方法... 所以... 从这里开始关注您的问题,并只提供代码的重要部分。 I'm working on an application with Spring using SpringMVC,, i'm encountering the following error and i don't know how to deal with it .now i have this message in Console :org.hibernate.TypeMismatchException: Provided id of the wrong type. Expected: class java.lang.Integer, got class java.lang.Stringat org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:86)at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)at org.hibernate.impl.SessionImpl.load(SessionImpl.java:795)at org.hibernate.impl.SessionImpl.load(SessionImpl.java:788)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:301)at com.sun.proxy.$Proxy11.load(Unknown Source)at com.my.dao.DepartementImplDB.getDepartementByNom(DepartementImplDB.java:54)at com.my.dao.DepartementImplDB.addDepartement(DepartementImplDB.java:29)at com.my.service.DepartementImplMetier.create(DepartementImplMetier.java:57)at com.my.controller.ImportController.Read(ImportController.java:279)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Unknown Source)this is my ImportController class/** * @author Ilias */package com.my.controller;//import ...import com.my.dao.Departement;@Controllerpublic class ImportController {DepartementImplMetier dbD = new DepartementImplMetier();@RequestMapping(value="/read")public String Read(Model model,@RequestParam CommonsMultipartFile[] fileUpload) throws IOException, EncryptedDocumentException, InvalidFormatException, java.text.ParseException{ liste = extraire(modelnom);for(int m=0, i=29;i<liste.size();i=i+29){//i=i+29 Employe employe= new Employe(); Departement departement = new Departement(); if(i % 29 == 0) m++; //... Some code here String dep = (String)liste.get(29*m+13).toString(); Departement d = new Departement(); departement.setNomDepartement(dep); boolean bool=true; List<Departement> departements = dbD.getAll(); boolean depbool = true; for(int j=0;j< departements.size();j++){ if(departements.get(j).getNomDepartement() == dep ) { depbool = false; } if(depbool){ try { dbD.create(departement); } catch (Throwable e) { e.printStackTrace(); } } } for(int n=0;n<employes.size();n++){ if(employes.get(n).getMatriculeMY() == (int)mat ) { bool= false; } } if(bool){ try { dbD.create(departement); dbE.create(employe); } catch (Throwable e) { e.printStackTrace(); } } }}return "redirect";}}}this is my Employe.hbm.xml<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 5 ao?t 2015 11:05:44 by Hibernate Tools 3.4.0.CR1 --><hibernate-mapping> <class name="com.my.dao.Employe" table="EMPLOYE"> <id name="id" type="int"> <column name="ID" /> <generator class="native" /> </id> <property name="nomEmploye" type="java.lang.String"> <column name="NOMEMPLOYE" /> </property> <property name="prenomEmploye" type="java.lang.String"> <column name="PRENOMEMPLOYE" /> </property> <property name="matriculeMY" type="int"> <column name="MATRICULEMY" /> </property> <property name="adresse" type="java.lang.String"> <column name="ADRESSE" /> </property> <property name="sexe" type="java.lang.String"> <column name="SEXE" /> </property> <property name="cin" type="java.lang.String"> <column name="CIN" /> </property> <property name="dateNaissance" type="java.lang.String"> <column name="DATENAISSANCE" /> </property> <property name="situationFamiliale" type="java.lang.String"> <column name="SITUATIONFAMILIALE" /> </property> <property name="dateEntree" type="java.lang.String"> <column name="DATEENTREE" /> </property> <property name="dateSortie" type="java.lang.String"> <column name="DATESORTIE" /> </property> <property name="numCIMR" type="java.lang.String"> <column name="NUMCIMR" /> </property> <property name="numCNSS" type="java.lang.String"> <column name="NUMCNSS" /> </property> <property name="numMUT" type="java.lang.String"> <column name="NUMMUT" /> </property> <property name="profile" type="java.lang.String"> <column name="PROFILE" /> </property> <property name="resteConge" type="java.lang.String"> <column name="RESTECONGE" /> </property> <property name="banque" type="java.lang.String"> <column name="BANQUE" /> </property> <property name="numCpteBanc" type="java.lang.String"> <column name="NUMCPTEBANC" /> </property> <!-- <property name="fonction" type="java.lang.String"> <column name="FONCTION" /> </property> --> <property name="salaire" type="float"> <column name="SALAIRE" /> </property> <property name="indTransport" type="float"> <column name="INDTRANSPORT" /> </property> <property name="indRepresent" type="float"> <column name="INDREPRESENT" /> </property> <property name="indPanier" type="float"> <column name="INDPANIER" /> </property> <many-to-one name="eDepartement" class="com.my.dao.Departement" access="field" fetch="join"> <column name="EDEPARTEMENT" /> </many-to-one> <many-to-one name="eFonction" class="com.my.dao.Fonction" access="field" fetch="join"> <column name="EFONCTION" /> </many-to-one> <many-to-one name="eService" class="com.my.dao.Service" access="field" fetch="join"> <column name="ESERVICE" /> </many-to-one> <many-to-one name="eTypePaiement" class="com.my.dao.TypePaiement" access="field" fetch="join"> <column name="ETYPEPAIEMENT" /> </many-to-one> <many-to-one name="eModePaiement" class="com.my.dao.ModePaiement" access="field" fetch="join"> <column name="EMODEPAIEMENT" /> </many-to-one> </class></hibernate-mapping>this is my Departement.hbm.xml<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 5 ao?t 2015 11:05:44 by Hibernate Tools 3.4.0.CR1 --><hibernate-mapping> <class name="com.my.dao.Departement" table="DEPARTEMENT"> <id name="id" type="int"> <column name="ID" /> <generator class="native" /> </id> <property name="nomDepartement" type="java.lang.String"> <column name="NOMDEPARTEMENT" /> </property> <set name="Employe" inverse="true"> <key column="ID" not-null="true"/> <one-to-many class="com.my.dao.Employe" /> </set> </class></hibernate-mapping>after debuging, the problem is here :boolean depbool = true; for(int j=0;j< departements.size();j++){ if(departements.get(j).getNomDepartement() == dep ) { depbool = false; } if(depbool){ try { dbD.create(departement); } catch (Throwable e) { e.printStackTrace(); } } }exactely here :dbD.create(departement);this DepartementImplDB classpackage com.my.dao;import java.util.List;import org.hibernate.Criteria;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.criterion.Restrictions;import com.my.util.HibernateUtil;/** * @author Ilias * */public class DepartementImplDB implements DepartementDao { /** * @see com.my.dao.DepartementDao#addDepartement(com.my.dao.Departement) */ @Override public int addDepartement(Departement D) { // TODO Auto-generated method stub Session session = HibernateUtil.getInstance().getSessionFactory().getCurrentSession(); session.beginTransaction();System.out.println("********"); session.save(D);System.out.println("departement implement metier"); session.getTransaction().commit(); D=this.getDepartementByNom(D.getNomDepartement()); return D.getId(); } /** * @see com.my.dao.DepartementDao#getDepartementById(int) */ @Override public Departement getDepartementById(int id) { // TODO Auto-generated method stub Session session = HibernateUtil.getInstance().getSessionFactory().getCurrentSession(); Departement dept = new Departement(); try { session.beginTransaction(); dept = (Departement) session.load(Departement.class, id); } catch (HibernateException e) { //LOGGER.error(e); e.printStackTrace(); if (session.getTransaction().isActive()) { session.getTransaction().rollback(); } } return dept; } /** * @see com.my.dao.DepartementDao#getDepartementByNom(java.lang.String) */ @Override public Departement getDepartementByNom(String nomDepartement) { Session session = HibernateUtil.getInstance().getSessionFactory().getCurrentSession(); Departement result = new Departement(); try { session.beginTransaction(); Criteria criteria = session.createCriteria(Departement.class); criteria.add(Restrictions.eq("nomDepartement", nomDepartement).ignoreCase()); result = (Departement) criteria.uniqueResult(); session.getTransaction().commit(); } catch (HibernateException e) { //LOGGER.error(e); e.printStackTrace(); if (session.getTransaction().isActive()) { session.getTransaction().rollback(); } } return result; } /** * @see com.my.dao.DepartementDao#deleteDepartement(int) */ @Override public void deleteDepartement(int id) { // TODO Auto-generated method stub Session session = HibernateUtil.getInstance().getSessionFactory().getCurrentSession(); session.beginTransaction(); Departement dept = (Departement) session.load(Departement.class, id); session.delete(dept); session.getTransaction().commit(); } /** * @see com.my.dao.DepartementDao#updateDepartement(com.my.dao.Departement) */ @Override public void updateDepartement(Departement D) { // TODO Auto-generated method stub } /** * @see com.my.dao.DepartementDao#getAllDepartement() */ @Override public List<Departement> getAllDepartement() { // TODO Auto-generated method stub Session session = HibernateUtil.getInstance().getSessionFactory().getCurrentSession(); session.beginTransaction(); return session.createQuery("from Departement").list(); }}this is what i want to do (UML): imgurthis is the link of my last error for more infos : Linkcan some one help ? 解决方案 Your question is a real mess... but if you read the exception: Provided id of the wrong type. Expected: class java.lang.Integer, got class java.lang.StringAnf after you take a look to your Departement class, it has only 2 fields and one set (according to the hibernate mapping):int id;String nomDepartament;Set employees;That only can mean, youre passing the nomDepartament field instead of id somewhere in your code...But as far as you are not providing, the Departement class or DepartementImplMetier.create() method, that is the one causing the exception I cannot say more...So... start here focus your problems, and provide only important parts of the code. 这篇关于org.hibernate.NonUniqueResultException:查询未返回唯一结果:462的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
07-23 08:17