Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 如何绑定非空自引用实体?_Jpa_Many To One_Self Referencing Table - Fatal编程技术网

Jpa 如何绑定非空自引用实体?

Jpa 如何绑定非空自引用实体?,jpa,many-to-one,self-referencing-table,Jpa,Many To One,Self Referencing Table,我想把一张桌子绑起来,看起来像这样 some_id BIGINT PK parent_id BIGINT NN '0' 如你所见 它看起来像一个自引用实体 parent\u id的无FK parent\u id不可为空,默认为0 我怎样才能装订 下面的映射很好吗 class Some { @Id private Long id; @ManyToOne // optional? @JoinColumn(name = "parent_id", re

我想把一张桌子绑起来,看起来像这样

some_id   BIGINT PK
parent_id BIGINT    NN '0'
如你所见

  • 它看起来像一个自引用实体
  • parent\u id的无FK
  • parent\u id
    不可为空,默认为
    0
我怎样才能装订

下面的映射很好吗

class Some {

    @Id
    private Long id;

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

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

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

INSERT INTO some (some_id, parent_id) VALUES (0, 0);
COMMIT;
这样,带有
some_id=0
的条目现在将用作根元素,并使任何带有
parent_id=0
的引用成为有效引用

我不认为有一种方法可以将0映射为NULL,这与JPA的工作方式不同,也不适用于引用id