I would recommend you keep it simple, and just use pojo classes with JPA annotations or orm.xml. I see no issue having the JPA annotations in your classes, if you want to switch persistence solutions you can just use another JPA provider, it is the standard. Although using an orm.xml is probably easier for deployment, so you can make changes without recompiling code.
You could use interfaces if you desire, and just use factories to create the classes. I would avoid wrapping the JPA API's in your own wrapper persistence layer, why bother wrapping standard API's with your own proprietary ones...