gpt4 book ai didi

java - hibernate 中的一对多映射 : Not able to save objects

转载 作者:行者123 更新时间:2023-12-01 13:41:15 25 4
gpt4 key购买 nike

我有一个 Web 应用程序,我正在使用 hibernate 进行数据存储。我有两个实体类用户和文件,用户可以将文件上传到服务器,因此用户实体用于存储用户数据,文件实体用于存储文件。在用户实体中我编写以下代码

@OneToMany(mappedBy="user") 
@Column(nullable = true)
private Collection<Files> files=new ArrayList<Files>();
public Collection<Files> getFiles() {
return files;
}

public void setFiles(Collection<Files> files) {
this.files = files;
}

以及文件中的实体类

@ManyToOne
@JoinColumn(name="uid")
private Users user;
public Users getUser() {
return user;
}

public void setUser(Users user) {
this.user = user;
}

每当我运行应用程序时,hibernate 都会使用外键创建很好的表,但是当我尝试通过 session.save(u) 保存用户对象时,它不会被保存。我能想到的问题是我没有向文件集合添加任何值,也只是保存用户对象而不是文件对象,但这是必需的,因为用户可能不需要上传文件。他可以只拥有该帐户,并且可以在服务器上拥有任何文件。我怎样才能在 hibernate 中实现这一点。

最佳答案

使用级联

@OneToMany(mappedBy="user", cascade = CascadeType.PERSIST) 
@Column(nullable = true)
private Collection<Files> files=new ArrayList<Files>();

关于java - hibernate 中的一对多映射 : Not able to save objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20756389/

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