Comment faire pour imiter upsert comportement de l'utilisation d'Hibernate?

Je suis en train d'écrire une application qui sync entités à partir d'un tiers de la source de données dans notre propre schéma, avec une transformation/cartographie de l'étape entre les deux. Je suis de l'utilisation d'Hibernate pour représenter et de persister les entités dans notre propre schéma. Un problème que je suis en cours d'exécution en est que j'ai un unique multi-colonne de clé sur l'un de mes tables. Le comportement que je voudrais voir est analogue à un upsert: quand Hibernate va persister une entité et détecte une violation de contrainte d'unicité, il ne fait pas de mise à jour à la place. Nous utilisons MySQL, qui fournit un INSERT ... SUR un DOUBLE de la CLÉ de mise à JOUR de la syntaxe, mais je ne suis pas sûr de savoir comment ou si Hibernate peut être fait pour rendre l'utilisation de celui-ci?

Je suppose que je pourrais toujours essayer de l'insérer, et si j'attrape une exception faire une mise à jour, mais qui semble hacky et sous-optimale. Des conseils sur la façon propre de faire cela?

OriginalL'auteur Jason | 2010-09-08