Ciao Sono nuovo a Sprig Data JPA e mi sto chiedendo anche se ho passato l'Id all'entità, i dati Spring jpa si stanno inserendo invece di unire. Ho pensato quando ho implementare l'interfaccia Persistable e implementare i due metodi:Spring Data Inserimento JPA invece di Aggiornamento
public Long getId();
public Boolean isNew();
che verrà automaticamente unire invece di persistere.
ho una classe di entità chiamata dell'utente come:
@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;
e hanno un'altra 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;
}
Ho un repository personalizzato chiamato UserRepostory estende JpaReopistory. Sto colpendo il salvataggio per unire e persistono mentre vedo che l'implementazione dimostra che Spring Data Jpa utilizza due metodi per aggiornare o inserire.
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
Ho cercato di capire ma non ho avuto alcun indizio. Forse tu puoi aiutare i ragazzi .
Non è necessario implementare l'interfaccia permanente. Basta usare il 'save' ereditato e Spring Data lo gestirà per te. –