【问题标题】:one to one relationship JPA with multipartfileJPA 与 multipartfile 的一对一关系
【发布时间】:2020-11-12 15:13:25
【问题描述】:

我显然不知道如何与 JPA 建立 oneToOne 关系。

文章实体

@Entity
public class Article {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String title;

private String content;

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "files_id", referencedColumnName = "id")
private MultipartFile file;

文件实体

@Entity
@Table(name = "files")
public class DBFile {
    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid", strategy = "uuid2")
    private String id;

    private String fileName;

    private String fileType;

    @Lob
    private byte[] data;

    @OneToOne(mappedBy = "files")
    private Article article;

终端

Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.test.webservices.article.Article.file references an unknown entity: org.springframework.web.multipart.MultipartFile

我尝试将 String by Long 更改为 dbfileEntity,但在构建 uri 路径之后遇到了一些麻烦……我不明白为什么它不起作用,因为我使用了 @Table 注释。 有人可以解释一下吗? 谢谢

【问题讨论】:

    标签: java spring spring-boot hibernate hibernate-mapping


    【解决方案1】:

    这是一个错字。在这里,您是说您正在通过files 进行映射:

    @OneToOne(mappedBy = "files")
    private Article article;
    

    其中字段名称为file

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "files_id", referencedColumnName = "id")
    private MultipartFile file;
    

    您应该修复mappedBy 属性:

    @OneToOne(mappedBy = "file")
    private Article article;
    

    也是类型不对,应该是:

    private DBFile file;
    

    【讨论】:

    • 好游戏,可以!但是现在我尝试仅上传文件时遇到了同样的问题...内容类型'multipart/form-data;boundary=-------------------- ------096279328385565755529413;charset=UTF-8' not supported] 非常感谢!
    • @JeanReno 通过查看该错误很难说,我建议为此创建一个新问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多