0
我有以下方法使用休眠更新數據庫中的一行。我想使用新對象更新表中的所有列。所以我得到現有對象並將其所有屬性設置爲新對象的屬性。休眠更新對象的所有列
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對象的列嗎?