0

我正在尝试绑定一个看起来像这样的表

some_id   BIGINT PK
parent_id BIGINT    NN '0'

如你看到的,

  • 它看起来像一个自引用实体
  • 没有 FKparent_id
  • parent_id不可为空,默认为0

我该如何绑定?

跟随映射就好了吗?

class Some {

    @Id
    private Long id;

    @ManyToOne // optional?
    @JoinColumn(name = "parent_id", referencedColumnName = "some_id")
    private Some parent;
}

换句话说,我如何映射0null

4

1 回答 1

1

我认为最好通过将根添加到表中来加强根元素的存在:

INSERT INTO some (some_id, parent_id) VALUES (0, 0);
COMMIT;

这样,该条目some_id = 0现在将用作根元素,并使用parent_id = 0有效引用进行任何引用。

我认为没有办法将 0 映射到 NULL - 不是 JPA 的工作方式,不是参考 id。

于 2018-11-06T02:05:47.037 回答