Псевдокод, чтобы добраться до точки:
@Entity
Person {
@Id
Integer id;
String SSN;
String name;
}
Вариант использования для хранилища или службы:
personRepository.save(new Person(ssn:"123456", name:"jeff")):
- id - уникальный первичный ключ с автоинкрементом
- SSN является уникальным и является идентификатором человека.
- имя является просто строкой и может быть изменено
В настоящее время сохранение использует hibernate merge()
для вставки / обновления, но у меня нет id
при сохранении (часть моего уровня абстракции, так что клиентскому коду вообще не нужно касаться сущностей), так как я могу обновить имя человека, если SSN ужеприсутствовать в базе данных без необходимости отдельного поиска в этом поле, а затем использовать там логику ветвления (я не хочу этого делать, потому что я могу обновлять и вставлять МНОГИЕ люди сразу и думаю, что это будет медленно)