【发布时间】:2017-07-11 15:29:36
【问题描述】:
我知道这可能太模糊了,但是在我的 jpa 实体中添加 @ManyToMany 后,什么会导致 NullPointerException?
所有代码都相同,我只删除了链接到 croos 表的实体,并修改了之前链接到该实体的两个实体,添加了@ManyToMany,因此问题不在于外部代码或数据库中。
这两个实体还通过带有第二个字段的 @OneToMany 链接。会不会是这个问题?
这是我的数据库的结构:
- table1:id、name、description 和 table2_id;
- table2:id、名称和描述;
- cross_table:id、table1_id、table2_id 和时间戳
会不会是两个Set成实体Table2有问题?
我的规格是:
- java8
- hibernate5.2
- jpa2.1
【问题讨论】:
-
Jpa 不会抛出任何
NullPointerException,如果 db 中不存在任何元素 jpa 将为您创建一个空的Set,也许您在一个临时实体上操作并且没有初始化Set。 -
@holi-java 你能告诉我更多吗?我将 fetchType 从 LAZY 更改为 EAGER,但没有任何改变...
-
这是您不引用或为其提供堆栈跟踪的 NPE。因此,任何人都无话可说。
-
@Neil Stockton 你是对的,不幸的是 stackTrace 没有帮助,我会是通用的,因为正如我在回答中所写的那样,我确信问题不在于注释并且写得太多这可能会令人困惑!
标签: java-8 jpa-2.1 hibernate-5.x