Relacionamento traz registros com campos nulos

Opa pessoal,

eu tenho um relacionamento muitos para muitos e criei o mapeamento com jpa. O problema é que quando eu pego a lista do relacionamento, ele traz todos os registros com o campo nomeCurso vazio quando no banco tem valor.

O relacionamento é entre universidade e curso.

Universidade.java

@Entity
@Table( schema="client", name="universidade")
public class Universidade implements Serializable{

	private static final long serialVersionUID = 1L;
	
	@Id
	@SequenceGenerator(name = "generator", sequenceName = "client.universidade_id_universidade_seq")
	@GeneratedValue(generator = "generator")
	@Column(name = "id_universidade", unique = true, nullable = false)	
	private int idUniversidade;
	
	@Column(name = "nome", nullable = true, length = 200)
	private String nome;
	
	@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE,
			CascadeType.REFRESH}, fetch = FetchType.LAZY, mappedBy = "universidade")
	private List<UniversidadeCurso> universidadeCurso;

	
	public int getIdUniversidade() {
		return idUniversidade;
	}

	public void setIdUniversidade(int idUniversidade) {
		this.idUniversidade = idUniversidade;
	}

	public String getNome() {
		return nome;
	}

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

	public List<UniversidadeCurso> getUniversidadeCurso() {
		return universidadeCurso;
	}

	public void setUniversidadeCurso(List<UniversidadeCurso> universidadeCurso) {
		this.universidadeCurso = universidadeCurso;
	}
}

curso.java

@Entity
@Table( schema="client", name="curso")
public class Curso implements Serializable{

	private static final long serialVersionUID = 1L;
		
	@Id
	@SequenceGenerator(name = "generator", sequenceName = "client.curso_id_curso_seq")
	@GeneratedValue(generator = "generator")
	@Column(name = "id_curso", unique = true, nullable = false)
	private int idCurso;
	
	@Column(name = "nome", nullable = false, length = 100)
	private String nomeCurso;

	@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE,
			CascadeType.REFRESH}, fetch = FetchType.LAZY, mappedBy = "curso")
	private List<UniversidadeCurso> universidadeCurso;
	
	
	public int getIdCurso() {
		return idCurso;
	}

	public void setIdCurso(int idCurso) {
		this.idCurso = idCurso;
	}

	public String getNomeCurso() {
		return nomeCurso;
	}

	public void setNomeCurso(String nomeCurso) {
		this.nomeCurso = nomeCurso;
	}

	public List<UniversidadeCurso> getUniversidadeCurso() {
		return universidadeCurso;
	}

	public void setUniversidadeCurso(List<UniversidadeCurso> universidadeCurso) {
		this.universidadeCurso = universidadeCurso;
	}
}

UniversidadeCurso.java

@Entity
@Table( schema="client", name="universidade_curso")
public class UniversidadeCurso implements Serializable{

	private static final long serialVersionUID = 1L;
	
	@Id
	@SequenceGenerator(name = "generator", sequenceName = "client.universidade_curso_id_universidade_curso_seq")
	@GeneratedValue(generator = "generator")
	@Column(name = "id_universidade_curso", unique = true, nullable = false)	
	private int idUniversidadeCurso;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_universidade")
	private Universidade universidade = new Universidade();
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_curso")
	private Curso curso = new Curso();

	
	
	public int getIdUniversidadeCurso() {
		return idUniversidadeCurso;
	}

	public void setIdUniversidadeCurso(int idUniversidadeCurso) {
		this.idUniversidadeCurso = idUniversidadeCurso;
	}

	public Universidade getUniversidade() {
		return universidade;
	}

	public void setUniversidade(Universidade universidade) {
		this.universidade = universidade;
	}

	public Curso getCurso() {
		return curso;
	}

	public void setCurso(Curso curso) {
		this.curso = curso;
	}
}

O problema é o seguinte, eu pego a universidade selecionada pelo usuário e carrego em uma varíavel. Depois eu chamo uma lista que mostra todos os cursos da universidade, mas o nome do curso vem vazio. Eu fiz uma consulta somente em curso e funciona normal. O problema é no relacionamento.

	public String setarUniversidade(String id){
		uni = (Universidade)  ConnectionFactory.getInstance().get(Universidade.class, Integer.parseInt(id));
		return "";
	}
uni.getUniversidadeCurso().get(i).getCurso(); <------------ o id vem com valor, mas o nome vem vazio