从Hibernate的
persistentcollection文档中:
由于存在基础关系模型,因此,具有集合值的属性不支持空值语义。Hibernate不会区分空集合引用和空集合。
还有…
当您使实例具有持久性时,通过调用persist(),Hibernate实际上将用Hibernate自己的Set实现的实例替换HashSet。
这些“非空集合”和“持久”与“非持久”语义有时会因开发人员而丢失。为了使Hibernate对象保持简单,我更喜欢:
- 总是
Collections
用java.util
实现来初始化 - 总是编码到
Collection
接口
使Hibernate对象
Collection的习惯永远不会为NULL,并避免上述文档中指出的将Hibernate对象
Collection转换为无效实现的陷阱。



