2017-08-17 1 views
1
@Entity 
@Table(name="ITEMS") 
public class ItemsEntity { 

     @Id 
     @GeneratedValue(strategy=GenerationType.AUTO) 
    @OneToMany(targetEntity=AddOnEntity.class,mappedBy="primaryItem",cascade=CascadeType.ALL,fetch=FetchType.LAZY) 
    @Column(name="ITEM_ID") 
    private Integer itemId; 

    @Column(name="ITEM_NAME") 
    private String itemName; 

    @Column(name="ITEM_PRICE") 
    private Double itemPrice; 

    public Integer getItemId() { 
     return itemId; 
    } 

    public void setItemId(Integer itemId) { 
     this.itemId = itemId; 
    } 

    public String getItemName() { 
     return itemName; 
    } 

    public void setItemName(String itemName) { 
     this.itemName = itemName; 
    } 

    public Double getPrice() { 
     return itemPrice; 
    } 

    public void setPrice(Double price) { 
     this.itemPrice = price; 
    } 

} 

Ici, je suis en train de faire itemId comme clé étrangère de la table addon mais je reçois tentative illégale de la carte une non-collection en tant que @OneToMany, @ManyToMany ou @CollectionOfElements. S'il vous plaît quelqu'un peut-il me dire ce que je fais mal.Question clé étrangère, Affichage tentative illégale de carte non collection comme @OneToMany, @ManyToMany ou @CollectionOfElements erreur

@Entity 
@Table(name="ADD_ON_ITEMS") 
public class AddOnEntity { 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    @Column(name="ADD_ON_ID") 
    private Integer addOnId; 

    @Column(name="ADD_ON_NAME") 
    private String addOnName; 

    @Column(name="ADD_ON_PRICE") 
    private Double addOnPrice; 

    @ManyToOne 
    @JoinColumn(name="PRIMARY_ITEM") 
    private ItemsEntity primaryItem; 

    public Integer getAddOnId() { 
     return addOnId; 
    } 

    public void setAddOnId(Integer addOnId) { 
     this.addOnId = addOnId; 
    } 

    public String getAddOnName() { 
     return addOnName; 
    } 

    public void setAddOnName(String addOnName) { 
     this.addOnName = addOnName; 
    } 

    public Double getAddOnprice() { 
     return addOnPrice; 
    } 

    public void setAddOnprice(Double addOnprice) { 
     this.addOnPrice = addOnprice; 
    } 

    public ItemsEntity getPrimaryItem() { 
     return primaryItem; 
    } 

    public void setPrimaryItem(ItemsEntity primaryItem) { 
     this.primaryItem = primaryItem; 
    } 


} 

Et si je l'ai fait complètement faux s'il vous plaît me fournir la solution correcte j'ai pris référencé à partir https://www.youtube.com/watch?v=PIg6F9TayOk

Répondre

1

ItemsEntity:

@Entity 
@Table(name="ITEMS") 
public class ItemsEntity { 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    @Column(name="ITEM_ID") 
    private Integer itemId; 

    @Column(name="ITEM_NAME") 
    private String itemName; 

    @Column(name="ITEM_PRICE") 
    private Double itemPrice; 


    @OneToMany(mappedBy="primaryItem",cascade=CascadeType.ALL) 
    private List<AddOnEntity> entity; 

    public Integer getItemId() { 
     return itemId; 
    } 

    public void setItemId(Integer itemId) { 
     this.itemId = itemId; 
    } 

    public String getItemName() { 
     return itemName; 
    } 

    public void setItemName(String itemName) { 
     this.itemName = itemName; 
    } 

    public Double getPrice() { 
     return itemPrice; 
    } 

    public void setPrice(Double price) { 
     this.itemPrice = price; 
    } 

} 

AddOnEntity:

@Entity 
@Table(name="ADD_ON_ITEMS") 
public class AddOnEntity { 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    @Column(name="ADD_ON_ID") 
    private Integer addOnId; 

    @Column(name="ADD_ON_NAME") 
    private String addOnName; 

    @Column(name="ADD_ON_PRICE") 
    private Double addOnPrice; 

    @ManyToOne 
    @JoinColumn(name="ITEM_ID") 
    private ItemsEntity primaryItem; 

    public Integer getAddOnId() { 
     return addOnId; 
    } 

    public void setAddOnId(Integer addOnId) { 
     this.addOnId = addOnId; 
    } 

    public String getAddOnName() { 
     return addOnName; 
    } 

    public void setAddOnName(String addOnName) { 
     this.addOnName = addOnName; 
    } 

    public Double getAddOnprice() { 
     return addOnPrice; 
    } 

    public void setAddOnprice(Double addOnprice) { 
     this.addOnPrice = addOnprice; 
    } 

    public ItemsEntity getPrimaryItem() { 
     return primaryItem; 
    } 

    public void setPrimaryItem(ItemsEntity primaryItem) { 
     this.primaryItem = primaryItem; 
    } 


} 

One Articles entité a de nombreux AddOnEntites:

De nombreux AddOnEntity appartiennent à un seul ItemsEntity.