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;
}
}
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


0