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 多通关系通过embbedfielld连接_Jpa_Jpa 2.0_Spring Data Jpa - Fatal编程技术网

Jpa 多通关系通过embbedfielld连接

Jpa 多通关系通过embbedfielld连接,jpa,jpa-2.0,spring-data-jpa,Jpa,Jpa 2.0,Spring Data Jpa,jpa/spring数据问题 我有一类植物,它有embbedid PlantId 我有一个类图像,它是经过修饰的字段PlantId 这意味着每个图像都连接到一个植物。因此,连接是一对多(一个工厂多个图像) 我试过那样的东西(不管用) 如何修复代码以获得所需的结果? 谢谢 橡树 编辑: 如果我有Plant的复合id,如何映射ManyTone关系的列?删除plantId可嵌入后,您缺少的只是ManyTone映射上的联接列定义,以便JPA知道要使用哪些外键来匹配Plant中的id字段。比如: @Man

jpa/spring数据问题

我有一类植物,它有embbedid PlantId 我有一个类图像,它是经过修饰的字段PlantId

这意味着每个图像都连接到一个植物。因此,连接是一对多(一个工厂多个图像)

我试过那样的东西(不管用)

如何修复代码以获得所需的结果? 谢谢

橡树

编辑:
如果我有Plant的复合id,如何映射ManyTone关系的列?

删除plantId可嵌入后,您缺少的只是ManyTone映射上的联接列定义,以便JPA知道要使用哪些外键来匹配Plant中的id字段。比如:

@ManyToOne
@JoinColumns({
        @JoinColumn(name="FK_1", referencedColumnName="PK1"),
        @JoinColumn(name="FK_2", referencedColumnName="PK2"),
        @JoinColumn(name="FK_3", referencedColumnName="PK3") 
        })
Plant plant;

我不明白为什么在调用Image.getPlant().getId()时要将plantId放在映像中。您只需要图像有自己的ID和与工厂的关系。如果plant的ID是复合的,则需要映射联接列,以便JPA知道在图像表中使用哪些字段作为外键。嘿!我不必在图像中添加plantId。plantId是由4条龙组成的。我只是不知道如何映射plantId的列,这样JPA就会知道如何连接@manytone关系。让你的生活更简单,应用程序更快:使用单列自动生成的ID。嘿@JB Nizet,在这种情况下,合成会更容易。另一方面,每次我都得把钥匙分开才能使用它。但是如果我没有其他选择我会这么做你怎么能拆分一个列主键?
@ManyToOne
@JoinColumns({
        @JoinColumn(name="FK_1", referencedColumnName="PK1"),
        @JoinColumn(name="FK_2", referencedColumnName="PK2"),
        @JoinColumn(name="FK_3", referencedColumnName="PK3") 
        })
Plant plant;