Comment pouvez-vous reproduire Hibernate saveOrUpdate en JPA?

En JPA, est-il possible que vous pouvez répliquer Hibernate saveOrUpdate comportement,

saveOrUpdate

public void saveOrUpdate(Object object)
                  throws HibernateException

    Either save(Object) or update(Object) the given instance, depending upon resolution of the unsaved-value checks (see the manual for discussion of unsaved-value checking).

    This operation cascades to associated instances if the association is mapped with cascade="save-update".

    Parameters:
        object - a transient or detached instance containing new or updated state 
    Throws:
        HibernateException
    See Also:
        save(Object), update(Object)

qui vérifie pour voir si l'objet existe déjà dans la base de données et met à jour l'objet en tant que de besoin, ou d'enregistrer une nouvelle instance de l'objet.

JPA transcationless lit sont sympa, mais je suis vraiment en manque, cette méthode de mise en veille prolongée. Comment expérimentés JPA développeurs de gérer cela?

  • Ce qu'il s'agit de vérifier si la "clé primaire" est null ?