如何在Hibernate中更新实体列表

时间:2015-04-14 12:55:54

标签: java spring hibernate sql-update

我有一个我正在尝试在数据库中更新的对象列表。我可以更新其中一个

MyObj entity = getObjectFromDb();
entity.changeSomething();
getHibernateTemplate().update(entity);

如果我有对象列表怎么办?是否可以在不迭代对象列表并逐个更新的情况下执行此操作?这听起来对我来说效率不高。所以我需要这样的东西

List<MyObj> entities = getObjectsFromDb();
//change some attribute of the entities
getHibernateTemplate().update(entities); //this doesn't work because entities is a List

1 个答案:

答案 0 :(得分:1)

我不知道一个特定于hibernate的方法会占用多个对象(这并不意味着它不存在)。编辑 - &gt; Updating a collection does exist! 我想,它只是逐个遍历它们并对每个对象执行1个查询。您可以选择一些选项(按照我认为最佳/最佳效果的顺序):

  • 您可以撰写Bulk HQL Update更新声明。
  • 您可以编写原始SQL更新语句。
  • 您可以编写自己的辅助对象,该对象需要多个对象并保存它们
  • 你可以依靠Hibernate的脏/刷新逻辑来保存已经改变的对象,开发人员会一直诅咒你。