Ich habe eine Tabelle (USERS)
mit Säulen:Hibernate SaveOrUpdate auf zusammengesetzten Schlüssel
- TABLE_ID - Integer
- BENUTZER_ID - Integer
- DATE - Datetime
- VALUE - Doppel
Diese wird auf eine User
Klasse abgebildet:
@Table(name = "USERS")
@Entity
public class User implements Serializable {
private static final long serialVersionUID = -6894800373034942671L;
@Transient
private String userName;
@Id
@Column(name = "TABLE_ID")
private Integer tableId;
@Column(name = "USER_ID")
private Integer userId;
@Column(name = "VALUE")
private Double value;
@Column(name = "DATE")
private Date date;
public User() {
}
// Getters and setters here
}
Tabelle Constraints sind anstelle mit Indizes:
- TABLE_ID - einzigartig und gruppierten
- BENUTZER_ID, DATE - einzigartig und nicht gruppierten
I Liste erstellen wird von User
Objekte jeweils mit einer anderen userId
. Wenn für einen bestimmten date
ein Benutzerdatensatz mit userId
in der Tabelle vorhanden ist, möchte ich seinen value
aktualisieren, andernfalls fügen Sie das neue User
Objekt ein.
Muss ich mit HQL
auswählen, neue User
Objekte für die fehlenden Objekte erstellen und dann saveOrUpdate
ausführen? Oder gibt es einen besseren Weg?
Wie kann ich das oben genannte mit Hibernate erreichen?