【问题标题】:When the model in hibernate need Serializable?hibernate中的模型什么时候需要Serializable?
【发布时间】:2018-07-11 12:54:00
【问题描述】:

我有两个模型:

@Entity
public class Invoice {

    @Id
    @Column(name="InvoiceID")
    private String InvoiceID;

    @Column(name="Date")
    private Date Date;

    @Column(name="TotalPrice")
    private int TotalPrice;

...
}

    @Entity
    public class Product {

        @Id
        private String ProductID;

        @Column(name="ProductName")
        private String ProductName;

        @Column(name="Quantity")
        private int Quantity;

        @Column(name="Price")
        private int Price;
...
    }

我有一个连接模型

@Entity
public class InvoiceDetail implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Id
    @ManyToOne
    @JoinColumn(name="InvoiceID")
    private Invoice Invoice;


    @Id
    @ManyToOne
    @JoinColumn(name="ProductID")
    private Product Product;

    ...
}

在InvoiceDetail中,如果我不实现Serializable,我会得到Caused by: org.hibernate.MappingException: Composite-id class must implement Serializable: com.javainsimpleway.model.InvoiceDetail

但在发票和产品模型中,我不需要这样做。 任何人都可以解释一下!

【问题讨论】:

  • 很清楚

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


【解决方案1】:

实体的id 必须是Serializable。你在InvoiceProduct 中的String id 都是Serializable。由于您(恕我直言错误)在InvoiceDetail 中使用Invoice 作为id,它也需要是Serializable

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 2017-12-15
    • 1970-01-01
    • 2018-12-10
    相关资源
    最近更新 更多