Автоматическое обновление отметки времени не работает в спящем режиме - PullRequest
0 голосов
/ 23 марта 2011

HI

Мой класс POJO

@Entity
@Table(name = "seed")
public class SeedUrl {

    @Id
    SeedUrlPrimaryKey primaryKey = new SeedUrlPrimaryKey();

     @Temporal(TemporalType.TIMESTAMP)
    @Column
    private Date lastUpdated;



    public SeedUrl(String url){
        this.url = url;
    }
    public SeedUrl(){}

    public SeedUrlPrimaryKey getPrimaryKey() {
        return primaryKey;
    }

    public void setPrimaryKey(SeedUrlPrimaryKey primaryKey) {
        this.primaryKey = primaryKey;
    }


    @PrePersist
    @PreUpdate
    public void onLastUpdated() {
        this.lastUpdated = new Date();
    }
}

Я хочу обновить один и тот же столбец либо при вставке, либо при обновлении ..

Я сохраняю объект следующим образом:

SeedUrlPrimaryKey primaryKey = new SeedUrlPrimaryKey();
            primaryKey.setSeedId("111121123");
            seedUrl.setPrimaryKey(primaryKey);
            session.save(seedUrl);
                    session.getTransaction().commit()

Но в базе данных значение lastUpdated равно нулю. В БД столбец объявлен как TIMESTAMP.
Куда я иду не так?

1 Ответ

1 голос
/ 23 марта 2011

При использовании Hibernate через интерфейс Session методы обратного вызова JPA (@PrePersist и т. Д.) Не работают. Вместо этого вы можете использовать Hibernate слушатели .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...