如何使用jpql // Person p更新jpa中的单个记录 = em.find(Person.class,1); // p.setState_Of_Origin(" Plateau"); // em.merge(p);对于上面你必须知道用户ID, 这并没有多大帮助。我使用了以下方法
Person update(EntityManager em,String setPerson,String getPerson)
{
TypedQuery<Person> m = em.createQuery("update Person b set b.State_Of_Origin =setPerson
where b.Firstname = ?1 ", Person.class);
m.setParameter(1, getPerson);
}
void Update(EntityManager em, String name)
{
TypedQuery<Person> m = em.createQuery("update Person p set p.State_Of_Origin = 'Plateau' where p.Firstname = ?1 ", Person.class);
int executeUpdate = m.setParameter(1,name).executeUpdate();
System.out.println(executeUpdate);
}
答案 0 :(得分:1)
我检查了与使用jpa更新单个记录有关的主题,并且没有人满意我在这个网站上,但我很感激这些想法。这里有一些代码可以帮助另一位java爱好者。它有效!!!!!
//我正在使用objectdb,所以它允许你使用ur显式对象路径而不是持久单元名
EntityManagerFactory emf = Persistence.createEntityManagerFactory("$objectdb/db/directory.odb");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
String queryupdate = "UPDATE Person SET State_Of_Origin=?1 WHERE Firstname=?2";
int executeUpdate= em.createQuery(queryupdate).setParameter(1, "Nasarawa").setParameter(2, "fajemi").executeUpdate();
System.out.println("executed "+executeUpdate+" item");
em.getTransaction().commit();
em.close();
emf.close();