简体   繁体   English

休眠状态下的模型何时需要可序列化?

[英]When the model in hibernate need Serializable?

I have two model: 我有两个模型:

@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;
...
    }

And I have a join model 我有一个加入模型

@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;

    ...
}

In InvoiceDetail, if i dont implement Serializable, i will get Caused by: org.hibernate.MappingException: Composite-id class must implement Serializable: com.javainsimpleway.model.InvoiceDetail 在InvoiceDetail中,如果我不实现Serializable,我将得到原因:org.hibernate.MappingException:Composite-id类必须实现Serializable:com.javainsimpleway.model.InvoiceDetail

But in Invoice and Product model, i dont need to do that. 但是在发票和产品模型中,我不需要这样做。 Any one can explain me about that! 任何人都可以向我解释!

The id of an entity must be Serializable . 实体的id必须是Serializable Your String ids in Invoice and Product are both Serializable . 您在InvoiceProduct中的String ID均可Serializable Since you are (IMHO mis-)using Invoice as id in InvoiceDetail it also needs to be Serializable 由于您(恕我直言误用) InvoiceDetail Invoice作为id ,因此还需要可Serializable

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM