【发布时间】:2023-01-03 02:30:41
【问题描述】:
所以我有我的 LanguageController 类,其中我有这个方法:
@GetMapping("/languages")
public ResponseEntity<List<Language>> getAllLanguages(@RequestParam(required = false) String name) {
try {
List<Language> languages = new ArrayList<Language>();
if (name == null) {
languageRepository.findAll().forEach(languages::add);
} else {
languageRepository.findByNameContaining(name).forEach(languages::add);
}
if (languages.isEmpty()) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
return new ResponseEntity<>(languages, HttpStatus.OK);
} catch (Exception e) {
return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
Language 类是(省略了 getter 和 setter,所以它更干净):
@Entity
@Table(name = "languages")
public class Language {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name = "name")
private String name;
@Column(name = "audio")
@Lob
private Blob audio;
@Column(name = "script")
@Lob
private Blob script;
public Language() {
}
public Language(String name, Blob audio, Blob script) {
this.name = name;
this.audio = audio;
this.script = script;
}
}
在这里,当我使用 API 端点时,我得到了这个 JSON:
[
{
"id": 1,
"name": "Test Language",
"audio": {
"binaryStream": {},
"wrappedBlob": {
"binaryStream": {},
"traceId": 26,
"traceObjectName": "blob26"
}
},
"script": {
"binaryStream": {},
"wrappedBlob": {
"binaryStream": {},
"traceId": 27,
"traceObjectName": "blob27"
}
}
}
]
在这里我要返回 BLOB 流,这不是很有用。
我想返回以 Base64 编码的 BLOB,但我真的不知道在哪里对文件进行编码。
谢谢你的帮助!
【问题讨论】:
标签: java spring spring-boot base64 blob