2010-06-05 4 views
1

J'ai une campagne de classe qui gère une liste d'interfaces de groupe d'annonces. im va persister sa mise en œuvreImpossible d'instancier une classe ou une interface abstraite: problème persistant

@Entity 
    @Table(name = "campaigns") 
    public class Campaign implements Serializable,Comparable<Object>,CampaignInterface    { 
private static final long serialVersionUID = 1L; 


    @Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private Long id; 

    @OneToMany (
     cascade = {CascadeType.ALL}, 
     fetch = FetchType.EAGER, 
    targetEntity=AdGroupInterface.class 
     ) 
@org.hibernate.annotations.Cascade(
value = org.hibernate.annotations.CascadeType.DELETE_ORPHAN 
) 
@org.hibernate.annotations.IndexColumn(name = "CHOICE_POSITION") 
private List<AdGroupInterface> AdGroup; 


public Campaign() { 
    super(); 
} 

public List<AdGroupInterface> getAdGroup() { 
    return AdGroup; 
} 

public void setAdGroup(List<AdGroupInterface> adGroup) { 
    AdGroup = adGroup; 
} 

public void set1AdGroup(AdGroupInterface adGroup) { 
    if(AdGroup==null) 
     AdGroup=new LinkedList<AdGroupInterface>(); 
    AdGroup.add(adGroup); 
} 

}

la mise en œuvre de AdGroupInterface est AdGroups. lorsque j'ajoute un groupe d'annonces à la liste dans la campagne,

campagne c; . c.getAdGroupList() (ajouter de nouveaux groupes d'annonces()), etc. et sauver campagne

il dit: "instanciation classe abstraite ou de l'interface:" AdGroupInterface

son ne reconnaissant pas la mise en œuvre juste avant la persistance.

Considérant que les groupes d'annonces persistants fonctionnent séparément. quand il est membre d'une autre entité, il ne persiste pas.

  import java.io.Serializable; 
     import java.util.List; 
     import javax.persistence.*; 


      @Entity 

      @DiscriminatorValue("1") 

      @Table(name = "AdGroups") 

     public class AdGroups implements Serializable,Comparable,AdGroupInterface{ 


/** 
* 
*/ 
private static final long serialVersionUID = 1L; 


private Long Id; 


private String Name; 


private CampaignInterface Campaign; 


private MonetaryValue DefaultBid; 

    public AdGroups(){ 

    super(); 
} 
public AdGroups(String name, CampaignInterface campaign) { 
    super(); 
    this.Campaign=new Campaign(); 
    Name = name; 
    this.Campaign = campaign; 
    DefaultBid = defaultBid; 
    AdList=adList; 
} 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Column(name="AdGroup_Id") 
public Long getId() { 
    return Id; 
} 

public void setId(Long id) { 
    Id = id; 
} 

@Column(name="AdGroup_Name") 
public String getName() { 
    return Name; 
} 

public void setName(String name) { 
    Name = name; 
} 

@ManyToOne 
@JoinColumn (name="Cam_ID", nullable = true,insertable = false) 
public CampaignInterface getCampaign() { 

    return Campaign; 
} 

public void setCampaign(CampaignInterface campaign) { 
    this.Campaign = campaign; 
} 

}

ce que je suis absent ?? s'il vous plaît regarder dans ...

Répondre

2

Je pense que le targetEntity de votre association OneToMany devrait être une classe (peut-être abstrait, mais pas une interface). Jetez un oeil à this previous answer.

+0

merci beaucoup pour votre réponse :) il obtient persisté quand je dis getHibernateTemplate.save (adgroup); (qui était une interface) mais enregistrer sauvegarde (campagne) ne fonctionne pas où adgroup est son membre de classe ... il crée la troisième table de jointure campaign_adgroupinterface après campaigninterface_adgroupinterface. cela signifie que la campagne est reconnue à partir de campaignInterface mais que l'adgroup n'est pas .. cela signifie un problème quand il s'agit d'un membre de données de la campagne .. c'est ce que je devine .............. – sammy

+0

@sammy travail de mise en œuvre ou non? Si ce n'est pas le cas, vous devez changer quelque chose. –

+0

oh oui, il semble que JPA ne supporte pas les interfaces persistantes dans les anciennes versions .. je ne sais pas abt les nouvelles versions .. classes abstraite semblent être une option ... malade continuer à essayer thnx – sammy

Questions connexes