Spring Data JPA - Pourquoi changer une Entité renvoyée automatiquement persisté?

Je vous présente la question avec un exemple.

Affirmer que nous avons un Référentiel tel que ci-dessous:

public interface ExampleObjectRepository extends CrudRepository<ExampleObject, Long> {

}

Par l'extension de la JpaRepository interface, le ExampleObject référentiel hérite de la méthode suivante:

T findOne(ID id);

Maintenant, j'ai observé que, si je reçois une référence à un ExampleObject après un appel à cette méthode, toutes les manipulations que j'ai faites à cette méthode sont automatiquement enregistrées dans la base de données, par exemple:

ExampleObject pointInCase = exampleObjectRepository.findOne(1L);
pointInCase.setName("Something else");

De lecture autour de l'objet, je comprends ce signfies que ExampleObject instance est not detached.

Cela va à l'encontre de mes attentes. J'aurais pensé que j'aurais besoin d'utiliser la méthode save hérité de CrudRepository pour enregistrer les modifications:

T save(T entity);

Quelqu'un serait-il assez aimable pour confirmer que les objets retournés par une source de Données JPA Référentiel de rester attaché en tant que norme, et d'expliquer comment utiliser l'API pour marquer une méthode dans le référentiel tel qu'il retourne uniquement détaché des références?

J'imagine que la modification de l'entité de l'etat peut également modifier sa définition lorsqu'il est utilisé avec dit save(T entity) méthode, donc j'apprécierais aussi une compréhension de la façon dont l'identité pour les mises à jour sont gérées.

InformationsquelleAutor 8bitjunkie | 2012-11-27