En supposant que j'ai une personne d'objet avecMise en veille prolongée: Vérifiez si l'objet existe/changé
long id
String firstName
String lastName
String address
Je suis une personne génération objet quelque part dans ma demande. Maintenant, je voudrais vérifier si la personne existe dans la base de données (= prénom/nom-combinaison est dans la base de données). Si ce n'est pas le cas, insérez-le. Si oui, vérifiez si l'adresse est la même. Sinon => mettre à jour l'adresse.
Bien sûr, je peux faire quelques requêtes (d'abord, essayer de charger l'objet avec prénom/nom), puis (si existant), comparer l'adresse. Mais n'y a-t-il pas une approche plus simple et plus propre? Si vous avez plusieurs classes différentes et n'aimez pas avoir autant de requêtes.
Je voudrais utiliser des annotations comme pour dire: prénom/nom => ils sont la clé primaire. Vérifiez-les si l'objet existe. Adresse est le paramètre que vous devez comparer si elle est restée la même ou non.
Est-ce que Hibernate/JPA (ou un autre cadre) prend en charge quelque chose comme ça?
pseude-code:
if (database.containsObject(person)) { //containing according to compound keys
if (database.containsChangedObject(person)) {
database.updateObject(person);
}
} else {
database.insertObject(person);
}
la personne n'est qu'un exemple. mais dans ce cas, je ne voudrais pas insérer deux personnes avec le même prénom/nom - je voudrais vérifier si une personne avec ce nom/prénom couple existe et si oui, ne pas insérer mais vérifier si l'adresse doit être mis à jour . – swalkner
Oh, d'accord, je vois. Ensuite, vous avez juste besoin du prénom/nom dans la clé composée. –
mais comment comparer ces "trois" étapes? 1. vérifier si l'objet existe (en comparant les clés composées, dans l'exemple: prénom/nom). 2a.) L'objet n'existe pas - insert - finisehd. 2b.) L'objet existe - l'objet a-t-il changé? (comparez l'objet à celui de la base de données) 3) si l'objet a changé - mettez-le à jour – swalkner