Spring Data JPA insertion au lieu de la mise à Jour

Salut, je suis nouveau sur Brin de Données JPA et je me demande même si je passe l'Id de l'entité, le Printemps de données jpa est l'insertion au lieu de fusionner. J'ai pensé lorsque je mettre en œuvre le Permanent de l'interface et de mettre en œuvre deux méthodes:

public Long getId();
public Boolean isNew();

Il va fusionner automatiquement au lieu de persister.

J'ai une classe d'entité Utilisateur appelé comme:

@Entity
@Table(name = "T_USER")
public class User implements Serializable, Persistable<Long> {

   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   @Column(name = "USER_ID")
   private Long id;

   @Column(name = "CREATION_TIME", nullable = false)
   private Date creationTime;

   @Column(name = "FIRST_NAME", nullable = false)
   private String firstName;

   @Column(name = "LAST_NAME", nullable = false)
   private String lastName;

   @Column(name = "MODIFICATION_TIME", nullable = false)
   private Date modificationTime;

Et une autre classe

@Entity
@Table(name = "T_USER_ROLE")
public class UserRole implements Serializable, Persistable<Long> {

   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   private Long roleId;

   @Column(name = "ROLE_NAME")
   private String userRole;
}

J'ai un dépôt personnalisée appelé UserRepostory l'extension de JpaReopistory. Je suis frapper l'enregistrer pour la fusion et de persister comme je le vois à la mise en œuvre de démontrer que Spring Data Jpa utilise deux méthodes pour mettre à jour ou insérer.

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}

J'ai essayé de comprendre mais n'a pas obtenu la moindre idée. Peut-être que vous
gars peut vous aider.

Vous n'avez pas besoin de mettre en œuvre le permanent de l'interface. Juste de l'utilisation de l'héritage save et de Données du Printemps s'en chargera pour vous.

OriginalL'auteur Rossi Robinsion | 2014-12-28