在我的Hibernate类中,应该初始化实例集合
public class Basket { private List items = new ArrayList(); ...getters and setters... }
或不引起注意
public class Basket { private List items; ...getters and setters... }
对Hibernate有什么不同吗?我遇到了这个Hibernate文档,它在其中初始化了他们的HashSet,但是我经常看到他们没有被初始化。
从Hibernate的persistent collection文档中:
persistent collection
由于存在基础关系模型,因此,具有集合值的属性不支持空值语义。Hibernate不会区分空集合引用和空集合。
还有…
当您使实例具有持久性时,通过调用persist(),Hibernate实际上将用Hibernate自己的Set实现的实例替换HashSet。
这些“非空集合”和“持久”与“非持久”语义有时会因开发人员而丢失。为了使Hibernate对象保持简单,我更喜欢:
Collections
java.util
Collection
使Hibernate对象Collection的习惯永远不会为NULL,并避免上述文档中指出的将Hibernate对象Collection转换为无效实现的陷阱。