Persistence Best Practices for Java Applications