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
Java JPA关系_Java_Jpa_Entity Relationship - Fatal编程技术网

Java JPA关系

Java JPA关系,java,jpa,entity-relationship,Java,Jpa,Entity Relationship,如果你有这样的关系: 员工与其主管员工的多对一关系 员工与其部门的多对一关系 部门与经理进行一对一的沟通 我会在员工实体中写下: @ManyToOne (cascade=CascadeType.PERSIST) private Employee supervisor; @ManyToOne (cascade=CascadeType.PERSIST) private Department department; 在部门里呢 @OneToOne (cascade=CascadeType.PE

如果你有这样的关系:

  • 员工与其主管员工的多对一关系
  • 员工与其部门的多对一关系
  • 部门与经理进行一对一的沟通
我会在员工实体中写下:

@ManyToOne (cascade=CascadeType.PERSIST)
private Employee supervisor;
@ManyToOne (cascade=CascadeType.PERSIST)
private Department department;
在部门里呢

@OneToOne (cascade=CascadeType.PERSIST)
private Employee manager;
然后,我将创建并设置员工的变量(姓名、职务、工资、主管)

然后,我将使用他的变量(名称、代码)创建部门

创建部门后,我可以在“员工”对话框中设置部门

然后我可以把经理安排在部门里

设置了所有变量后,我可以持久化实体的属性。我坚持员工(因为部门的关系也会坚持)


我相信这是正确的方法

同时提供注释@ManyToOne;还提供注释@JoinColumn


因为现在你只担心坚持下去会很好。如果以后您希望更新也以同样的方式工作;您必须使用CascadeType.ALL或CascadeType.MERGE

为什么不这样做,如果不起作用,请提出一个问题?您是对的。必须注意引用应该分配到哪里,以及它应该在哪里为null。没有员工对经理的参考b/w?有些东西可以“工作”,但这是使其工作的正确方式吗?并不是所有可行的方法都是“正确的”,所以有更多经验的ppl可以建议一种正确的开始方法,这样您就可以在此基础上继续努力,使所有方法都处于“良好实践”状态。然后编写一些代码,使其可行,并将其提交给codereview.stackexchange.com。评论看不见的代码没有多大意义。我唯一能说的是,我觉得通过留住一名员工来留住一名经理是不合逻辑的。在将经理分配给员工之前,经理应该已经存在。员工部门和员工主管也是如此。