JPA是否返回" null"或者数据库中为空的集合属性的空集合?

时间:2018-06-14 14:38:12

标签: jpa collections null language-lawyer

如果我有一个包含集合字段的JPA实体,例如

public class Post {    
  // [...]
  @OneToMany
  private List<String> tags;

相应的数据库模式通常包含一个用于存储标记的单独表,其中每个记录包含一个标记和一个外键引用&#34; Post&#34;表

现在当我加载&#34; Post&#34;数据库中没有标签的实体(即没有相应的&#34;标签&#34;记录存在),Post.tags的值是多少?它会设置为null还是空List?或者这是不确定的?

我在JPA规范中找不到这个。

注意:这个问题与this相同,仅针对JPA规范,而不是针对Hibernate。

我知道大多数JPA实现(至少是Hibernate和EclipseLink)都会返回一个空集合 - 我对是否在任何地方指定它感兴趣。

1 个答案:

答案 0 :(得分:3)

根据JPA 2.1 spec

  

如果从数据库中获取的实体的多值关系没有关联实体,   持久性提供程序负责返回一个空集合作为关系的值。