openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joel Halbert <j...@su3analytics.com>
Subject Does PrePersist work when merging entities? (2.0.1)
Date Wed, 09 Feb 2011 15:06:41 GMT
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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message