-1
初めて登録したときにhorastotalesを追加する際に問題が発生しましたが、コードがうまく動作していますが、2番目を挿入して0にして間違った値フィールドダブルこの属性している合計は、主キーの他の値が結果jaの更新でエラーが発生しました
public void crearHistorial(Equipo equipo) {
historialDao.crearHistorial(equipo, login.getUsuario(), historial.getHorastd(), historial.getUbicacion());
EntityManagerFactory emf = Persistence.createEntityManagerFactory("inventarioPU");
EntityManager em = emf.createEntityManager();
equipo.setNumeroControl(historial.getUbicacion());
equipoDAO.actualizarequipo(equipo, login.getUsuario());
abrirEquipo(equipoID);
Query query = em.createQuery("UPDATE Historial c SET c.horasTrabajadas= c.horastd -" + equipo.getHorastotales() + " WHERE c.equipo.id=" + equipo.getId());
em.getTransaction().begin();
query.executeUpdate();
em.getTransaction().commit();
listahist= bm.buscarHistorial(equipoID);
for (Historial hist : listahist) {
Query query1 = em.createQuery("UPDATE Equipo c SET c.horastotales = c.horastotales +" + hist.getHorasTrabajadas() + " WHERE c.id=" + equipo.getId());
Query query2 = em.createQuery("UPDATE Equipo c SET c.horasmotor= c.horasmotor -" + hist.getHorasTrabajadas() + " WHERE c.id=" + equipo.getId());
Query query3 = em.createQuery("UPDATE Equipo c SET c.horashrida= c.horashrida -" + hist.getHorasTrabajadas() + " WHERE c.id=" + equipo.getId());
em.getTransaction().begin();
query1.executeUpdate();
query2.executeUpdate();
query3.executeUpdate();
em.getTransaction().commit();
} }
エラーがあるとしたら、データストアで実行されたSQLを表示しないのはなぜですか?そこから後方に向かって作業します。別名「デバッグ」 –
ログに表示されないエラー表示 – alexander
なぜfind-> modigy-> mergeを使用しないのですか? id-keyedエンティティの場合、そのようなものは非常に効果的でエラーの発生がはるかに少ないでしょう。そして、1つのレコードを更新するための3つの更新クエリでは絶対に必要はありません。 –