2011-03-23 130 views
0

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的值为空。 在DB中,该列被声明为TIMESTAMP。
我哪里错了?

回答

1

当您通过Session接口使用Hibernate时,JPA回调方法(@PrePersist等)不起作用。您可以改用Hibernate listeners