ON UPDATE CURRENT_TIMESTAMP и JPA

У меня есть объект с полями

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "edit_timestamp", 
        columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
private Date editTimestamp;

@Version
@Column(name = "edit_count")
private short editCount;

private String text;

Когда я пытаюсь обновить с помощью Spring-Data-JPA , я замечаю, что edit_count был увеличен, но edit_timestamp по-прежнему остается прежним. Если я вручную вызываю SQL

UPDATE post SET TEXT='456' WHERE post_id=1;

, edit_timestamp обновляется. Если я добавлю

@PreUpdate
protected void onUpdate() {
    editTimestamp = new Date();
}

, он будет работать без проблем. У меня вопрос, почему без @PreUpdate edit_timestamp не обновляется?

7
задан Lee Chee Kiam 6 July 2011 в 13:55
поделиться