Tengo un object A
que mapea a table A
en el PPactualizar un campo de un objeto en hibernación
class A {
Integer id;
String field2,field2;field3 ,... fieldN;
//lots of other attribute
}
ahora quiero escribir una API DAO que simplemente actualiza un enfoque único field.One es que puedo primera cargar el objeto a continuación, cambia el atributo que necesito y luego utilizar la combinación de API
//start transcation
A a = session.load(A.class, id);
A.setfieldP(newValue)
session.merge(A)
//commit transcation
Ahora si uso siguiente código
//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
01 Ahora
segundo enfoque todos los campos excepto el ID y fieldP se establecen en NULL
1) Ahora hay otro enfoque?
2) ¿Puedo usar la actualización en lugar de combinar?
Probablemente ya lo sepa, pero saveOrUpdate funciona con objetos separados. La única vez que tiene problemas es cuando hay un objeto existente con la misma identificación adjunta a la sesión. –
'saveOrUpdate' actualizará los valores a un objeto existente en el db (+1) – bluefoot
@Russ Sanwald: En el segundo enfoque lo que intento hacer es, quiero actualizar un objeto. Ahora, para actualizarlo, no quiero buscarlo desde db y luego actualizar, en su lugar estoy creando un nuevo Objeto A, establezco su clave principal y el campoN y luego actualizo. Configuré la clave principal porque quiero actualizar el objeto con primarykey = X (asumiendo que el objeto con id x ya está presente en DB y establezco fieldN como quiero actualizarlo.No estoy cambiando la clave principal, pero mi propósito es chnage valor de campoN del objeto A con ID = X – akshay