【问题标题】:Why an @ManyToMany should caused a NullPointerException?为什么@ManyToMany 会导致 NullPointerException?
【发布时间】: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


【解决方案1】:

像往常一样,对我来说,这条消息引起了误解,我认为问题是@ManyToMany 而不是我在 hibernate.cfg 中的错误,因为我只删除了实体 table1_table2 而不是 hibernate.cfg 上的映射注释! 谢谢@holi-java 的提示!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-17
    • 2016-08-15
    • 2011-01-27
    • 2011-08-19
    • 1970-01-01
    • 2011-06-11
    • 2012-01-22
    • 2021-10-14
    相关资源
    最近更新 更多