如何从Superclass映射OneToMany关系

时间:2014-04-19 21:44:59

标签: jpa superclass

您好!最近我遇到了这样的问题,我希望下面提供的解决方案能帮助像我这样的其他JPA新手。如果有更好的解决方案,请在此发布!

问题如下:

我想创建从类BookCD到类Tag OneToMany 关系。 为了统一TagBook中有关课程CD的所有逻辑,我创建 @MappedSuperclass Item,然后制作Book }和CDItem的后代。但是当我尝试映射时 List <Tag> 标签与 @OneToMany“在那个超类中我没什么好看的。

1 个答案:

答案 0 :(得分:0)

我的解决方案:

为了进行ORM映射,首先应该先了解他实际想要在数据库中看到什么。因此,当我意识到合理的解决方案是在ItemTag的后代之间创建几个转换表时,我明白,这可以使用 @ManyToMany 来完成。它工作正常!
清单如下。

@MappedSuperclass
public class Item extends Model {
    @Id
    public  Long id;
    @ManyToMany(cascade = CascadeType.ALL)
    public List<Tag> tags;
    public String name;
    <…> }    
@Entity
public class Book extends Item {
    public int pageNum;
    <…> }
@Entity
public class CD extends Item{
    public int size;
    <…> }
@Entity
public class Tag extends Model{
    @Id
    public Long id;
    public String text;
    <…> }

PS 我也发布了类和图表,但目前我没有r8n发布图片。