Tim,
You can apply @GeneratedValue to a field which is generated by the database
even if the field is not a primary key. The following did work for me on
PostgreSQL:
create table gv_test(id bigserial, modified timestamp not null default
current_timestamp, vvv int)
@Entity
@Table(name="gv_test")
public class Message {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
private Integer vvv;
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Date modified;
public Message() {
}
public Message(Integer v) {
vvv = v;
}
public long getId() {
return id;
}
public void setId(long val) {
id = val;
}
public Date getModified() {
return modified;
}
public void setModified(Date modified) {
this.modified = modified;
}
public Integer getVvv() {
return vvv;
}
public void setVvv(Integer vvv) {
this.vvv = vvv;
}
}
em.getTransaction().begin();
Message m = new Message(60);
em.persist(m);
System.out.println(m.getModified());
em.getTransaction().commit();
Regards,
Milosz