我正在使用springboot、jpa、h2数据库。我正在尝试将excel文件上载到db,但出现错误
NULL not allowed for column "user_Id"; SQL statement:
我有产品和用户表,产品由用户表Map。我认为这应该是可行的,因为我正在使用jwt,如果他们是登录用户。excel上载,然后保存产品字段。excel文件包含诸如产品名称、说明等。
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
@Entity
@ApiModel
public class Product extends BaseEntity {
@Id
@GeneratedValue
@Column(name = "product_id")
private Long id;
@JsonIgnore
@ManyToOne(fetch = FetchType.LAZY,optional = false)
@JoinColumn(name = "account_id")
private User user;
@PostMapping("/api/excel/upload")
public ResponseEntity<ResponseMessage> uploadFile(@RequestParam("file") MultipartFile file){
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); // this part
String message = "";
if (ExcelHelper.hasExcelFormat(file)){
try{
excelService.save(file);
message = "success: " + file.getOriginalFilename();
return ResponseEntity.status(HttpStatus.OK).body(new ResponseMessage(message));
} catch (Exception e) {
e.printStackTrace();
}
}
message = "please upload file";
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseMessage(message));
这是我之前的问题,但我还不能解决这个问题。请帮忙!这是同样的错误。我想用useridMapmultipartfile
1条答案
按热度按时间m4pnthwp1#
解决了的。我将contextholder设置为服务状态。这是一个很简单的问题。