相关疑难解决方法(0)

Hibernate - 如何在不加载整个Collection的情况下持久保存Collection中的新项

我的模型中有一个集合,其中包含一组我的根域对象的"先前版本".因此,以前的版本是"不可变的",我们永远不会想要更新它们,只希望在它们出现时添加过去的版本."版本化"的域对象也相当复杂,导致需要大量数据库访问才能检索.

当我有这些对象之一的新版本时,我想将其与其他对象保存,而不加载整个集合.高级常见问题解答有一些建议:

当我只想添加或删除元素时,为什么Hibernate总是初始化集合?

遗憾的是,集合API定义了方法返回值,这些值只能通过命中数据库来计算.这有三个例外:Hibernate可以添加到a <bag>,<idbag>或者<list>inverse="true"没有初始化集合的情况下声明; 返回值必须始终为true.

如果要避免额外的数据库流量(即在性能关键代码中),请重构模型以仅使用多对一关联.这几乎总是可行的.然后使用查询代替集合访问.

我是所有这一切的新手,并不是100%肯定如何重构你的模型只使用多对一的关联.任何人都可以给我一个例子,指出我的教程,以便我可以了解这将如何解决我的问题?

refactoring hibernate

20
推荐指数
2
解决办法
1万
查看次数

标签 统计

hibernate ×1

refactoring ×1