gpt4 book ai didi

java - 如何在文件名中存储带有 @GenerateValue id 的图像?

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:49 24 4
gpt4 key购买 nike

我是 Spring 新手,我想为成员(member)保存个人资料图片。我正在使用 lombok 和 JPA。

@Data
@Entity
public class Member {

private @Id @GeneratedValue Long id;
private String firstname;
private String lastname;
private Date entryDate;
private String shortDescription;
private String function;
private String picture;

protected Member() {
this.entryDate = new Date();
}

我希望一个包含所有数据的 POST。图片将作为 basic64 编码的字符串发送,但在数据库中应该只存储图像的链接。为了找到并识别每个成员的正确图片,我想用生成的 id 来命名它们。这是我已经做过的:

public void setPicture(String picture){
File folder = new File("images");
if(!folder.exists()){
folder.mkdir();
}
String[] base = picture.split(",");
String[] type = base[0].split("/|;");
this.picture = "images/" + id + "." + type[1];
try {
byte[] imageByte = Base64.getDecoder().decode(base[1]);
new FileOutputStream(this.picture).write(imageByte);
} catch(Exception e){
e.printStackTrace();
//TODO: what is best practice here?
this.picture = "images/default.jpg";
}
}

我的问题是此时的 id 不存在。有没有办法稍后在生成 id 后调用此方法,或者我应该选择不同的方法来解决此问题?我没有找到任何可以解决此问题的教程或问题。

最佳答案

一个简单的解决方案是像这样使用它:

entityManager.persist(member);
member.setPicture("pictureString");
entityManager.merge(member);

关于java - 如何在文件名中存储带有 @GenerateValue id 的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36848693/

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