Hi,
I have a simple application which is trying to persist a simple Pojo.
I wish to use optimistic locking so I use the @Version tag in my Pojo.
Here is the POJO.
<PRE>
@Entity
@Table(name="TAddress")
@SequenceGenerator(name="ADDRESS_SEQ", sequenceName="SADDRESS", allocationSize=1)
public class Address {
private String city;
private String street;
@Version
private long version;
private int i = -1;
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="ADDRESS_SEQ")
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public long getVersion() {
return version;
}
public void setVersion(long version) {
this.version = version;
}
public String getCity() {
return city;
}
public void setCity( String city) {
this.city = city;
}
public String getStreet() {
return street;
}
public void setStreet( String street) {
this.street = street;
}
}
</PRE>
However, no matter how many times I update and persist this POJO the version attribute always stays at zero. Hibernate does not increment it for me.
Here is an example of the code where I am trying to update:
<PRE>
public void testAddressVersions() {
// one address
System.out.println(">> testAddressVersions()");
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("h-source");
EntityManager em = emf.createEntityManager();
Address address = new Address();
em.getTransaction().begin();
em.persist(address);
em.getTransaction().commit();
em.getTransaction().begin();
address.setCity("Paris2");
em.persist(address);
em.getTransaction().commit();
em.close();
emf.close();
}
</PRE>
Any help appreciated.
|