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

Reply via email to