Mise à jour ou SaveorUpdate dans CRUDRespository, Est-il des options disponibles
Je suis en train de faire les opérations CRUD avec Mon Entity bean. CRUDRepository
fournir des méthodes standard pour find
, delete
et save
mais il n'existe pas de méthode générique disponible comme saveOrUpdate(Entity entity)
qui à son tour appelle Hibernate
ou HibernateTemplate
sessions saveorUpdate()
méthodes.
La façon CRUDRepository
fournit cette fonctionnalité est d'
comme ce
@Modifying
@Query("UPDATE Space c SET c.owner = :name WHERE c.id = :id")
Integer setNameForId(@Param("name") String name, @Param("id")
mais ce n'est pas générique et doit être écrite pour remplir les champs de formulaire.
S'il vous plaît laissez-moi savoir si il existe un moyen ou je peux obtenir session Hibernate ou de l'objet de Printemps HibernateTemplate pour résoudre ce problème.
Vous devez vous connecter pour publier un commentaire.
La mise en œuvre de la méthode
<S extends T> S save(S entity)
à partir de l'interface
CrudRepository<T, ID extends Serializable> extends Repository<T, ID>
automatiquement fait ce que vous voulez. Si l'entité est nouveau, il va appeler
persist
sur leentity manager
, sinon il va appelermerge
Le code ressemble à ceci:
et peut être trouvé ici. Notez que
SimpleJpaRepository
est la classe qui implémente automatiquementCrudRepository
au Printemps de Données JPA.Par conséquent, il n'est pas nécessaire de fournir une coutume
saveOrUpdate()
méthode. Spring Data JPA vous a couvert.J'ai la solution, La solution est d'utiliser @ModelAttribute pour convertir la forme de haricot à l'entité.
et