gpt4 book ai didi

java - JPA @OneToMany 和@ManyToOne : back reference is null

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:16:43 25 4
gpt4 key购买 nike

我有以下数据结构。

@Entity
public class Device extends AbstractEntity implements Serializable{
private int id;
//...
private List<Item> items;

@OneToMany(fetch=FetchType.EAGER)
public List<Item> getItems() {
return configurationItems;
}
}

每个项目都包含对设备的反向引用:

class Item {
private Device;
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH} )
public Device getDevice() {
return device;
}
}

我可以创 build 备、添加项目并保存所有这些。我可以从数据库中检索对象,除了对该项目持有的设备的引用外,一切正常。

我如何阅读这些项目并不重要:1.读取设备与所有相关项目2.阅读项目

设备引用始终为空。我猜我的注解 @ManyToOne 有问题。

我正在使用 hibernate 和 spring,通过继承 HibernateDaoSupport 来实现 DAO。

这是检索所有项目的代码示例:

getHibernateTemplate().loadAll(Item.class)

最佳答案

因为你有一个双向的一对多关系,你需要使用mappedBy:

@OneToMany(fetch=FetchType.EAGER, mappedBy = "device")  
public List<Item> getItems() {
return configurationItems;
}

另请参阅:

关于java - JPA @OneToMany 和@ManyToOne : back reference is null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4218273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com