web-dev-qa-db-fra.com

Update ou SaveorUpdate dans CRUDRespository, existe-t-il des options disponibles?

J'essaie de faire des opérations CRUD avec le bean My Entity. CRUDRepository fournit des méthodes standard aux find, delete et save, mais il n’existe pas de méthode générique comme saveOrUpdate(Entity entity) qui appelle à son tour les méthodes Hibernate ou HibernateTemplate sessions saveorUpdate().

La façon dont CRUDRepository fournit cette fonctionnalité est de Utiliser comme ceci

@Modifying
@Query("UPDATE Space c SET c.owner = :name WHERE c.id = :id")
Integer setNameForId(@Param("name") String name, @Param("id")

mais ceci n'est pas générique et doit être écrit pour des champs de formulaire complets .. S'il vous plaît, laissez-moi savoir s'il existe un moyen ou je peux obtenir une session d'Hibernate ou un objet de Spring HibernateTemplate pour résoudre ce problème. 

35
Kul Bhushan Prasad

J'ai eu la solution, la solution est d'utiliser @ModelAttribute pour convertir le bean de forme en entité.

@ModelAttribute("spaceSummary")
public SpaceSummary getSpaceSummary(int id){
    return this.spaceSummaryService.getSpaceSummary(id);
}

et

@RequestMapping(value="/mgr/editSpace", method = RequestMethod.POST)
public ModelAndView editSpace(@ModelAttribute("spaceSummary") SpaceSummary                
spaceSummary, BindingResult result, RedirectAttributes redirect, ModelAndView model) {

}
0
Kul Bhushan Prasad