Dan*_*nny 12 java collections hibernate
在我的Hibernate类中,应该初始化实例集合
public class Basket {
private List items = new ArrayList();
...getters and setters...
}
Run Code Online (Sandbox Code Playgroud)
或者保持未经注册
public class Basket {
private List items;
...getters and setters...
}
Run Code Online (Sandbox Code Playgroud)
它对Hibernate有什么不同吗?我遇到了这个Hibernate文档,它初始化了他们的HashSet,但我经常看到它们没有初始化.
像在第一个代码块中那样进行静态初始化会减少对空检查的需求,如果你知道在大多数用例中你将使用该集合,那么它是有意义的.
另一方面,如果很少使用集合,那么推迟初始化直到您确实需要使用它更有意义.
从Hibernate的persistent collection文档:
由于底层关系模型,集合值属性不支持空值语义.Hibernate不区分空集合引用和空集合.
而......
当你使实例持久化时,通过调用persist(),Hibernate实际上会用Hibernate自己的Set实现替换HashSet.
这些"非null集合"和"持久"与"非持久"语义有时会被开发人员迷失.为了简化Hibernate对象,我更喜欢:
Collections用java.util实现初始化所有Collection接口使Hibernate对象Collection的惯常做法永远不会为NULL,并避免上述将Hibernate对象Collection转换为无效实现的文档中提到的陷阱.
| 归档时间: |
|
| 查看次数: |
1239 次 |
| 最近记录: |