Wie kann ich schreiben update-Abfrage mit Bedingung in hibernate
public String passlink(String companyName, String mailName) {
Session session = Hibernateutil.getSessionFactory().openSession();
Transaction transaction = null;
try {
transaction = session.beginTransaction();
String queryString="UPDATE account SET companyname = :companyName WHERE companyname like 'm' AND Email LIKE :mailName";
Query query=session.createQuery(queryString);
query.setParameter("companyName", companyName);
query.setParameter("mailName", mailName);
int result = query.executeUpdate();
System.out.println("Rows affected: " + result);
System.out.println("Successfully updated");
transaction.commit();
} catch (Exception e) {
value = "FAIL";
e.printStackTrace();
//System.out.println("Error--> " + e.getMessage());
}
return value;
}
Schreibe ich update-Abfrage
String queryString="UPDATE Konto SET companyname = :Firma WHERE Firma like 'm' UND E-Mail WIE :mailName";
gerne, aber es gibt folgenden Fehler.
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
bei java.util.ArrayList.RangeCheck(Unknown Source)
bei java.util.ArrayList.bekommen(Quelle Unbekannt)
bei org.hibernate.hql.ast.HqlSqlWalker.postProcessUpdate(HqlSqlWalker.java:390)
bei org.hibernate.hql.antlr.HqlSqlBaseWalker.Anweisung(HqlSqlBaseWalker.java:164)
bei org.hibernate.hql.ast.QueryTranslatorImpl.analysieren(QueryTranslatorImpl.java:189)
bei org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:130)
bei org.hibernate.hql.ast.QueryTranslatorImpl.kompilieren(QueryTranslatorImpl.java:83)
bei org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:425)
bei org.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:880)
bei org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:861)
bei org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:89)
bei com.njob.dao.AccountDao.passlink(AccountDao.java:213)
bei com.njob.Aktion.companylink.doPost(companylink.java:34)
bei javax.- servlet.http.HttpServlet.service(HttpServlet.java:709)
bei javax.- servlet.http.HttpServlet.service(HttpServlet.java:802)
bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
bei org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
bei org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
bei org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
bei org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
bei org.apache.catalina.Ventile.ErrorReportValve.invoke(ErrorReportValve.java:105)
bei org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
bei org.apache.catalina.- Anschluss.CoyoteAdapter.service(CoyoteAdapter.java:148)
bei org.apache.coyote.http11.Http11Processor.Prozess(Http11Processor.java:825)
bei org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
bei org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
bei org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
bei org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
bei java.lang.Thread.run(Unknown Source)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie die Abfrage, um
und verwenden
Sehen
companyName
in AbfragecompanyName
nicht diecompanyname
versuchen Sie kopieren und einfügen von meiner Antworte.printStacktrace()
im catch-block und post-its outputversuchen, diese
Den parameter, den Sie verwenden, ist die Firma