Hibernate - saving objects - update table - not based on the primary key

Pseudocode to go to point:

@Entity
Person {
   @Id
   Integer id;
   String SSN;
   String name;
}

Use case for repository or service:

personRepository.save(new Person(ssn:"123456", name:"jeff")):
  • id - unique and auto-incremental primary key
  • SSN is unique and is a person identifier
  • name is just a string and can be changed.

hibernate merge() /, id, ( , ), , SSN , ( , , )

+3
2

, SSN , (...)

, , - SSN .

+1

HQL :

String queryString = "update Person set name = :name where ssn = :ssn";
Query query = session.createQuery(queryString);
query.setString("name", newName);
query.setString("ssn", ssn);
query.executeUpdate();

, , , Hibernate @Id, .

+2

Source: https://habr.com/ru/post/1754864/


All Articles