У меня есть object A
, который отображается на table A
в БД
class A {
Integer id;
String field2,field2;field3 ,... fieldN;
//lots of other attribute
}
Теперь я хочу написать API-интерфейс DAO, который просто обновляет отдельное поле. Один из подходов состоит в том, что я могу сначала загрузить объект, затем изменить нужный мне атрибут и затем использовать merge api
//start transcation
A a = session.load(A.class, id);
A.setfieldP(newValue)
session.merge(A)
//commit transcation
Теперь, если я использую следующий код
//start transcation
A a = new A();
a.setId(id); //set a id by which object A exists in DB
A.setfieldP(newValue)
session.merge(A)
//commit transaction
Теперь при втором подходе все поля, кроме id и fieldP, устанавливаются в нуль
1) Есть ли другой подход?
2) Могу ли я использовать обновление вместо слияния?