我有以下方法可以使用休眠更新数据库中的一行。我想使用新对象更新表中的所有列。因此,我获取现有对象并将其所有属性设置为新对象的属性。
public void updatePlace(Place newPlace) {
Session session = factory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
Place place = (Place)session.createQuery("FROM Place AS plc WHERE plc.Id = " + newPlace.getId()).list().get(0);
place.setPhone(newPlace.getPhone());
place.setPKey(newPlace.getPKey());
place.setName(newPlace.getName());
place.setDetails(newPlace.getDetails());
session.update(place);
tx.commit();
} catch (HibernateException e) {
if (tx != null) {
tx.rollback();
}
e.printStackTrace();
} finally {
session.close();
}
}
在这种方法中,我一一更新所有列,如果有一天我添加一个新列,我必须记住更改此方法。
place.setPhone(newPlace.getPhone());
place.setPKey(newPlace.getPKey());
place.setName(newPlace.getName());
place.setDetails(newPlace.getDetails());
是否有更短的方法来使用 newPlace 对象更新列?