This week's book giveaway is in the Java in General forum. We're giving away four copies of Beginning Java 17 Fundamentals: Object-Oriented Programming in Java 17 and have ishori Sharan & Adam L Davis on-line! See this thread for details.
I am confused how hibernate Session's build-in method update(Object) actually works. Suppose I have a table like
STUDENT(ID, name, address, phone)
where ID is the Oracle sequence ID, and in the hibernate mapping xml file I have <id name="id" column="ID" type="long"> <generator class="sequence"> <param name="sequence">STUDENT_SEQ</param> </generator> </id>
And in code I have
****** Student student = new Student(); student.setName(); student.setAddress(); student.setPhone();
Now, what does "update" exactly do here ? Since "ID" is the PK and it is generated by oracle sequence, it will never be identical. So how can I actually "update" a row ? for example if there is a row (john, 100 main st, 222-123-1234) before I run the code and I intend to update this row for "john" by changing the address and phone number to (john, 200 main st, 111-222-3333). But since hibernate creates a new ID for it and ID is PK, it is not supposed to "update" the row I think.. It should only "insert" this new row. but that's not what I want. So how can I update that row (what I actually want to do is "updte STUDENT set s.address =:address, s.phone := phone where s.name = :name", but that information seems not be incorporated in a simple "session.update(student)"...)