Beh, la domanda dice praticamente tutto. Usando JPARepository come posso aggiornare un'entità?Come aggiornare un'entità utilizzando spring-data-jpa?
JPARepository ha solo un metodo risparmi, che non mi dice se è effettivamente creato o aggiornato. Ad esempio, inserisco un semplice oggetto per l'utente del database, che ha tre campi: nome e cognome e età:
@Entity
public class User {
private String firstname;
private String lastname;
//Setters and getters for age omitted, but they are the same as with firstname and lastname.
private int age;
@Column
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
@Column
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
private long userId;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public long getUserId(){
return this.userId;
}
public void setUserId(long userId){
this.userId = userId;
}
}
Poi ho semplicemente "Save", che a questo punto è un inserto in realtà:
User user1 = new User();
user1.setFirstname("john"); user1.setLastname("dew");
user1.setAge(16);
userService.saveUser(user1);// This call is actually using the JPARepository: userRepository.save(user);
Ok tutto va bene. Ora voglio aggiornare questo utente, diciamo cambia la sua età. Bene, potrei usare una Query per QueryDSL o NamedQuery, qualunque sia. Ma, considerando che voglio solo usare spring-data-jpa e il JPARepository, come faccio a dire che invece di un inserto voglio fare un aggiornamento?
In particolare, come faccio a dire a spring-data-jpa che gli utenti che hanno lo stesso nome utente e lo stesso nome sono in realtà EQUAL e che è necessario aggiornare l'entità. L'override degli uguoli non ha funzionato.
Grazie!
Sei sicuro l'ID viene riscritto quando si salva un oggetto esistente nel database ?? Mai avuto questo sul mio progetto tbh –
@ByronVoorbach hai ragione hai appena provato questo. aggiorna anche la domanda, thx – Eugene
Ciao amico, puoi guardare questo link http://stackoverflow.com/questions/24420572/update-or-saveorupdate-in-crudrespository-is-there-any-options-available puoi essere un approccio come saveOrUpdate() – ibrahimKiraz