【发布时间】:2018-06-14 14:38:11
【问题描述】:
如果我有一个包含集合字段的 JPA 实体,例如
public class Post {
// [...]
@OneToMany
private List<String> tags;
相应的数据库模式通常会包含一个单独的表来存储标签,其中每条记录都包含一个标签和一个对“Post”表的外键引用。
现在,当我从没有标签的数据库中加载“发布”实体(即不存在相应的“标签”记录)时,Post.tags 的值是多少?它会被设置为null,还是空的List?还是这是未定义的?
我在 JPA 规范中找不到这个。
注意:这和Does Hibernate return null or empty collection if table in relation is empty? 一样的问题,只是针对 JPA 规范而不是专门针对 Hibernate。
我知道大多数 JPA 实现(至少是 Hibernate 和 EclipseLink)都会返回一个空集合 - 我感兴趣的是它是否在任何地方指定。
【问题讨论】:
标签: jpa collections null language-lawyer