2017-10-11 16 views
1

我有實體用戶,其中包含字段實體Actor包含 字段與實體產品。 現在我希望數據庫中的用戶使用產品上的@JoinColum來獲取有關正存儲在Actor中的產品ID的信息。 爲了更好地澄清,一些代碼:從另一個連接創建的列JoinColumn

@Entity 
    public class User { 
     @ManyToOne 
     @JoinColumns(value = {@JoinColumn(name = "actor_id", referencedColumnName = "id"), 
       @JoinColumn(name = "product_id", referencedColumnName = "product_id")}) 
     private Actor actor; 

    public Actor getActor() { 
     return actor; 
    } 

    public void setActor(Actor actor) { 
     this.actor = actor; 
    } 
    } 

    @Entity 
    public class Actor { 
     @ManyToOne 
     @JoinColumn(name = "product_id") 
     private Product product; 
    } 

在它創建表「用戶」與「actor_id」和「PRODUCT_ID」並表「演員」與列「PRODUCT_ID」數據庫。

使用Spring數據倉庫的userRepository.findAll()方法,我結束了ClassCastException異常和以下消息:

演員_ $$ _ jvst485_0不能轉換到了java.io.Serializable

任何想法如何解決它?

+0

在您的實體中實現Serializable接口 – akuma8

回答

1

如果您傳遞它們的分離對象,則需要在所有實體中實現Serializable接口。這由JSR 220指定。有關更多詳細信息,請參閱this answer