Problemas com relacionamento NxN mais classe associativa

Pessoal,

Estou com o seguinte problema: tenho uma classe chamada Familia, uma chamada Enfermidade e outra chamada FamiliaEnfermidade. A Classe chamada FamiliaEnfermidade é associativa… Possui um atributo de Familia, um de Enfermidade e alguns atributos proprios dela.

Minha dúvida está no mapeamento dessas tres classes. Segue meu código:

Familia

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

	private static final long serialVersionUID = 1L;
	

	@Id
	@SequenceGenerator(name = "SEQ", sequenceName = "seq_familia", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="SEQ")
	@Column(name = "id_familia")
	private Long id;
	
	@Column(name="descricao")
	private String  descricao;
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name="id_centro", insertable=true, updatable=true)
	@Fetch(FetchMode.JOIN)
	@Cascade(CascadeType.SAVE_UPDATE)
	private Centro centro;

	
	@OneToMany(mappedBy="familia", fetch = FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	private List<FamiliaEnfermidade> listaDeEnfermidades = new ArrayList<FamiliaEnfermidade>();

Enfermidade

@Entity
@Table(name="tbl_enfermidade")
public class Enfermidade {

	@Id
	@SequenceGenerator(name = "SEQ", sequenceName = "seq_enfermidade", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="SEQ")
	@Column(name = "id_enfermidade")
	private long id;
	
	@Column(name="descricao")
	private String descricao;
	
	//@ManyToMany
	//(fetch=FetchType.LAZY, mappedBy="listaDeEnfermidades", targetEntity=Usuario.class )  
	//private List<Usuario> listaDeUsuariosEnfermos;

	@OneToMany(mappedBy="enfermidade", fetch = FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	private List<FamiliaEnfermidade> listaDeFamiliasEnfermas;

FamiliaEnfermidade

@Id
	@Column(name="id_familia")
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name="id_familia", insertable=true, updatable=true)
	@Fetch(FetchMode.JOIN)
	@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
	public Familia familia;
	
	@Id
	@Column(name="id_enfermidade")
	//@OneToOne(cascade=CascadeType.ALL)
	//@JoinColumn(name="id_enfermidade")
	public Enfermidade enfermidade;
	
	@Column(name="comentario")
	public String comentario;
	
	@Column(name="gene")
	public String gene;
	
	@Column(name="genomica")
	public String genomica;
	
	@Column(name="mrna")
	public String mrna;
	
	@Column(name="proteina")
	public String proteina;

O erro que ocorre é:

org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: br.gov.inca.progenesdomain.domain.entity.FamiliaEnfermidade.familia in br.gov.inca.progenesdomain.domain.entity.Familia.listaDeEnfermidades
	at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:552)
	at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:517)
	at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43)
	at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1130)
	at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:316)

…ou seja, parece que o mapeamento está errado. Alguem sabe como resolver?

Obrigado!

ao invés de “familia”, não deveria ser “id_familia”?