Если у меня есть объект Person с
long id
String firstName
String lastName
String address
Затем я генерирую объект Person где-то в моем приложении. Теперь я хотел бы проверить, существует ли человек в базе данных (= комбинация имени / фамилии в базе данных). Если нет => вставьте его. Если да, проверьте, совпадает ли адрес. Если нет => обновить адрес.
Конечно, я могу сделать несколько запросов (сначала попытаться загрузить объект с именем / фамилией), затем (если есть) сравнить адрес Но разве нет более простого и чистого подхода? Если есть несколько разных классов и не нравится иметь столько запросов.
Я бы хотел использовать аннотации, как бы говоря:
firstname / lastname => это первичный ключ. Проверьте их, если объект существует.
адрес - это параметр, который вы должны сравнить, если он остался прежним или нет.
Поддерживает ли Hibernate / JPA (или другой фреймворк) что-то подобное?
pseude-код:
if (database.containsObject(person)) { //containing according to compound keys
if (database.containsChangedObject(person)) {
database.updateObject(person);
}
} else {
database.insertObject(person);
}