У меня есть таблица (USERS)
с колоннами:Hibernate SaveOrUpdate на составных ключей
- table_id - Integer
- USER_ID - Integer
- ДАТА - DateTime
- VALUE - Double
Этот преобразуется в класс User
:
@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
}
Таблица Ограничения на месте с помощью индексов:
- table_id - уникальный и кластерный
- USER_ID, DATE - уникальный и не кластерный
Я создам список из User
объектов, каждый из которых имеет разные userId
. Если для конкретного date
существует запись пользователя с userId
в таблице, я хочу обновить ее value
еще вставить новый объект User
.
Нужно ли выбирать, используя HQL
, создать новые User
объекты для тех, которые отсутствуют, а затем запустить saveOrUpdate
? Или есть лучший способ?
Как достичь вышеуказанного с помощью спящего режима?