Hallo, ich bin neu in Sprig Daten JPA Einfügen und ich frage mich, obwohl ich die Id an das Unternehmen übergeben, die Frühjahrsdaten JPA wird das Einfügen statt verschmelzen. Ich dachte, wenn ich die Persistable-Schnittstelle implementieren und die beiden Methoden implementieren:Spring Data JPA statt aktualisieren
public Long getId();
public Boolean isNew();
Es wird automatisch fusionieren statt bestehen bleiben.
Ich habe eine Entity-Klasse namens Benutzer wie:
@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;
Und haben eine andere Klasse
@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;
}
ich eine benutzerdefinierte Repository UserRepostory erstreckt JpaReopistory genannt. Ich treffe das Speichern für die Zusammenführung und behalte es bei, während ich sehe, dass die Implementierung zeigt, dass Spring Data Jpa über zwei Methoden entweder zum Aktualisieren oder Einfügen verwendet.
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
Ich habe versucht, herauszufinden, aber keine Ahnung bekommen. Vielleicht können Sie Jungs helfen.
Sie müssen die persistable-Schnittstelle nicht implementieren. Verwenden Sie einfach das geerbte 'save' und Spring Data wird es für Sie übernehmen. –