Hi Folks,
Are there any known issues around using @PrePersist on merge with
2.0,.1?
My Entities use Property access.
@PostLoad method is always called when loading entities.
@PrePersist is called on persist, but never on merge.
I'm tried using both runtime (agent) and compile time enhancement.
Here's a sample Entity that I used for testing this.
import javax.persistence.*;
@Entity
@Access(AccessType.PROPERTY)
@Table(name="TEST")
public class Test {
private int id;
private String name;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ID")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name="NAME")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@PrePersist
void populateDBFields(){
System.out.println("Hello, I happen prePersist!");
}
@PostLoad
void populateTransientFields(){
System.out.println("Hello, I happen postLoad!");
}
public static void main(String[] args) throws Exception {
EntityManagerFactory factory = Persistence.createEntityManagerFactory(
"su3", null);
EntityManager em = factory.createEntityManager();
// Test t = new Test();
// t.setName("name");
// em.persist(t);
Test t = em.find(Test.class, 1);
t.setName("new name");
em.merge(t);
em.getTransaction().commit();
em.close();
}
}
Any clues?
Joel
|