You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Guillaume Chauvet (JIRA)" <ji...@apache.org> on 2012/10/05 12:12:02 UTC

[jira] [Created] (OPENJPA-2274) Annotations & interface methods

Guillaume Chauvet created OPENJPA-2274:
------------------------------------------

             Summary: Annotations & interface methods
                 Key: OPENJPA-2274
                 URL: https://issues.apache.org/jira/browse/OPENJPA-2274
             Project: OpenJPA
          Issue Type: Improvement
            Reporter: Guillaume Chauvet


Dear OpenJPA team,

I tested a peculiar use of annotations on methods declared into an interface :

public interface EntityHeader {

    public long getId();
}

public interface EntityHistorizable<E extends EntityHeader> {

/* .... other methods ....*/

    @PostLoad
    public void postLoad();
    
    @PrePersist
    public void prePersist();

}

public class Task implements Serializable, EntityHistorizable<Task>, EntityHeader {

/* .... Implementations .... */

    @Override
    public void postLoad() {
	System.out.println("postLoad");
    }

    @Override
    public void prePersist() {
	System.out.println("prePersist");
    }

}


When I perform a persist/find operation on the "Task" entity, OpenJPA don't execute postLoad/prePersist methods because annotations are applied in the interface. I don't know if it's a good practice, but it will be useful in the case who want to provide a "pattern" interface, for example.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira