java - How to update an object that comes from a Play Framework 2.0 form using Spring+JPA? -
i using play framework 2.10 + spring , jpa. didn't utilize ebeans because in future versions of play deprecated, as stated here.
i trying update object comes database, changed in play form, , comes updated. problem each time save object using spring repository creates new entity. controller code appears below.
package controllers; import model.doctor; import repositories.doctorrepository; import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.controller; import play.data.form; import play.mvc.result; import views.html.doctores.blank; import views.html.doctores.show; @controller public class doctores { @autowired public doctorrepository doctorrepository; private static final form<doctor> doctorform = form.form(doctor.class); public result save() { form<doctor> boundform = doctorform.bindfromrequest(); if (boundform.haserrors()) { homecoming play.mvc.controller.badrequest(blank.render(boundform)); } doc doctor = boundform.get(); doctorrepository.save(doctor); homecoming play.mvc.controller.redirect(routes.doctores.list()); } public result show(long id) { final doc doctor = doctorrepository.findone(id); if (doctor == null) { homecoming play.mvc.controller.notfound(string.format("doctor %s no existe.", id)); } form<doctor> filledform = doctorform.fill(doctor); homecoming play.mvc.controller.ok(show.render(filledform)); } }
i don't want temporally store object in play's cache or session, restore it, , manually find out attributes changed. how can update object?
you need utilize merge() method.
doctor doc = boundform.get(); doctor.merge(); homecoming play.mvc.controller.redirect(routes.doctores.list());
make sure doc object has primary key field set. can achieved, example, adding hidden field form.
java spring jpa playframework-2.0
No comments:
Post a Comment