从另一个联接

时间:2017-10-11 13:04:01

标签: java spring jpa

我有实体User,其中包含包含实体Actor的字段 字段与实体产品。 现在我希望数据库中的用户使用产品上的@JoinColum获取有关产品ID的信息。 为了更好地澄清,有些代码:

   @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"和表"演员"列#34; product_id"。

使用Spring Data Repository的userRepository.findAll()方法我最终得到了ClassCastException和以下消息:

  

Actor _ $$ _ jvst485_0无法强制转换为java.io.Serializable

任何想法如何解决?

1 个答案:

答案 0 :(得分:1)

如果要传递它们的分离对象,则需要在所有实体中实现Serializable接口。这由JSR 220指定。有关更多详细信息,您可以看到this answer