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 - Fatal编程技术网

没有列映射的JPA一对一关系

没有列映射的JPA一对一关系,jpa,Jpa,我有几个实体具有一对一的关系: @Entity(name="stores") public class Store implements Serializable { @Id @GeneratedValue(strategy= GenerationType.AUTO ) @Column(name="id") private int id ; // How should I set goal ? private Goal goal ; } 以及:

我有几个实体具有一对一的关系:

@Entity(name="stores")
public class Store implements Serializable {
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO )
    @Column(name="id")
    private int id ;
    // How should I set goal ?
    private Goal goal ;
}
以及:

我的问题是如何在商店实体中设置“目标”字段

通常,我会这样做:

@Entity(name="stores")
    public class Store implements Serializable {
       ...
       @OneToOne() 
       @JoinColumn(name = "goalId")
       private Goal goal ;
       ...
但在这种情况下,我不能,因为底层的“stores”表属于另一个应用程序,不能修改(通过添加“goalId”列)

我需要的是Store实例能够通过在storeGoals表中查找具有相同storeId的记录来查找其目标(当然,我意识到我可能会遇到引用完整性问题…)

有什么办法吗?
谢谢

您可能正在寻找所谓的双向一对一关系。这与双向多对多或一对多/多对一关系的工作原理相同,因为一方“拥有”该关系,并控制外键中的值的设置;另一端指定它是另一端的“mappedby”,因此操作时就好像它是只读的一样。但是,双方都需要与任何手动更改保持同步;如果你设置了一面,但没有反映另一面的变化,JPA将不会为你解决这个问题

在这种情况下:

public class Store implements Serializable {
  ..
  @OneToOne(mappedby="store")
  private Goal goal ;
}

你可能正在寻找所谓的双向一对一关系。这与双向多对多或一对多/多对一关系的工作原理相同,因为一方“拥有”该关系,并控制外键中的值的设置;另一端指定它是另一端的“mappedby”,因此操作时就好像它是只读的一样。但是,双方都需要与任何手动更改保持同步;如果你设置了一面,但没有反映另一面的变化,JPA将不会为你解决这个问题

在这种情况下:

public class Store implements Serializable {
  ..
  @OneToOne(mappedby="store")
  private Goal goal ;
}

什么桌子?您不仅仅是希望重用Goal.storeId foriegn键关系,还是存在一个关系表“storeGoals”来映射这两个表?哪个storeGoals表?您不仅仅是希望重用Goal.storeId foriegn-key关系,还是存在一个关系表“storeGoals”来映射这两个表?这太简单了,我不得不问!这太简单了,我不好意思问了!