Session.delete()によってSQL DB内のROWを削除しようとしていますが、RemoveProjectサーブレットを呼び出すときに、データベースからオブジェクトを削除するパラメータを取得しています。Session.delete()が動作しません
SessionFactory sf=DataConnect.getConnect();
Session sess=sf.openSession();
Transaction tr=sess.beginTransaction();
try{
Query qur=sess.createQuery("from Project");
org.hibernate.Criteria cr=sess.createCriteria(Project.class);
//cr.add(Restrictions.eq("name",request.getParameter("name")));
cr.add(Restrictions.idEq(Integer.parseInt(request.getParameter("id"))));
List obj=cr.list();
for (Iterator iterator = obj.iterator(); iterator.hasNext();)
{
osl.pojo.Project devobj = (osl.pojo.Project) iterator.next();
System.out.print("DELETING"+devobj.getName()+"from Project");
sess.delete(devobj);
tr.commit();System.out.println("ROW DELETED");
}
}catch(HibernateException he){ he.printStackTrace(); ;tr.rollback(); response.sendRedirect(request.getRequestURI());}
しかし、私はまたフラッシュセッションを試みました。
Glassfish Consoleでこのメッセージが表示されています。あなたはfor
ループ内でコミットするため、ループの外にそれを変更しようとしているため
***Info: DELETING DATA_To_BE_DELETED from Project
WARN: SQL Error: 1064, SQLState: 42000
ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index=1' at line 1
Info: HHH000010: On release of batch it still contained JDBC statements
Severe: org.hibernate.exception.SQLGrammarException: could not execute statement***
これは動作しません、同じ警告とエラー –
これは解決されました、私のSQLテーブルのプロパティ名は 'インデックス'でした。そのため、SQL構文は機能しませんでした。 –