EJB (Enterprise Java Beans) - problemas con el manytomany

   
Vista:

problemas con el manytomany

Publicado por sugreen (1 intervención) el 18/07/2008 14:52:22
Este es mi codigo con dos entity bean que tienen una relacion manytomany, pero me da este el siguiente error y no se porque :

Exception Description:

The attribute [formacion] in entity class [class Entidades.Recurso] has a mappedBy value of [recursos] which does not exist in its owning entity class [class Entidades.Formacion]. If the owning entity class is a @MappedSuperclass, this is invalid, and your attribute should reference the correct subclass.
at oracle.toplink.essentials.exceptions.EntityManagerSetupException.predeployFailed(EntityManagerSetupException.java:228)
... 78 more

Si alguien es tan amable de echarle un vistazo se lo agradecería mucho. Graciaaaaaas!!!

************************************Clase Recurso*********************************************************

package Entidades;

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

@Entity
@Table(name="Recurso")
public class Recurso implements Serializable
{


private String dni;
private String nome;
private String apelido;
private Date dataalta;
private List<Formacion> formacions;



public Recurso(){}

public Recurso(String d, String n,String p, Date dataalta)
{
this.dni=d;
this.nome=n;
this.apelido=p;
this.dataalta=dataalta;
}


@Id
public String getDni()
{
return this.dni;
}

public void setDni(String c)
{
this.dni=c;
}


@Basic
@Column(nullable=false,length=50)
public String getNome()
{
return this.nome;
}

public void setNome(String n)
{
this.nome=n;
}


@Basic
@Column(nullable=false,length=200)
public String getApelido()
{
return this.apelido;
}

public void setApelido(String p)
{
this.apelido=p;
}


@Basic
@Column(nullable=false,length=50)
@Temporal(TemporalType.DATE)
public Date getDataalta()
{
return this.dataalta;
}

public void setDataalta(Date d)
{
this.dataalta=d;
}


@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.EAGER,mappedBy="recursos",targetEntity=Formacion.class)
@JoinTable(
name="rel_form_rec",
joinColumns={@JoinColumn(name="form_id")},
inverseJoinColumns={@JoinColumn(name="rec_id")})
public List<Formacion> getFormacion()
{

return formacions;
}



public void setFormacion(List<Formacion> formacions)
{
this.formacions=formacions;
}

}
*********************************************************************************************


package Entidades;

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

@Entity
@Table(name="Formacion")
public class Formacion implements Serializable {


private int id;
private String nome;
private int nivel;
private List<Recurso> recursos;



public Formacion(){}

public Formacion(int d, String n,int v)
{
this.id=d;
this.nome=n;
this.nivel=v;
}

public void setId(int id) {
this.id = id;
}

@Id
//@GeneratedValue
public int getId()
{
return id;
}




public void setNome(String n) {
this.nome = n;
}

@Basic
@Column(nullable=false,length=50)
public String getNome()
{
return nome;
}



public void setNivel(int v) {
this.nivel = v;
}

@Basic
@Column(nullable=false)
public int getNivel()
{
return nivel;
}




@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.EAGER)
@JoinTable(
name="rel_form_rec",
joinColumns={@JoinColumn(name="form_id")},
inverseJoinColumns={@JoinColumn(name="rec_id")})
public List<Recurso> getRecurso()
{
return recursos;

}


public void setRecurso(List<Recurso> recursos)
{
this.recursos=recursos;
}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder