Bean dentro de outro Bean

Primeiro não estou usando nenhum framework(propositalmente) e usando o mysql.

Tenho duas tabelas no minha base de dados: turmas e disciplina e dois beans na minha aplicação.


public class Turma
 {
       
   private int codigoTurma;
   private String semestre;
   private Date ano;
   private int codigoDisciplina;
   private Disciplina disciplina;
   private int matProfessor; 

...getters and setters...
}


public class Disciplina {

    private int codigoDisciplina;
    private String nomeDisciplina;
...getters and setters...
}

Agora preciso popular uma combo no jsp com as turmas mais preciso da informacao “nomeDisciplina” que está na classe disciplina.

Agora no meu método de consulta sql eu retorno o que? Uma turma? A turma não tem o nome da disciplina… então tenho um problema.
Modifico meu bean?

Não quero uma solução, quero saber o que é o mais correto respeitando as boas práticas.

A minha dúvida é realmente essa.

É correto, uma boa prática, melhor solução criar uma classe disciplina dentro de turma???

Que funciona, funciona tem outras soluções também.

Mas quero saber a melhor solução.

Bom na aplicação uma turma somente tem uma disciplina (pensa em ensino superior)…

1…n

E n…n nõ poderia ficar da maneira que você mostrou não, teria que normalizar… mas isso não vem ao caso.

Mas me tirou minha dúvida de ter um bean dentro do outro.

Obrigado!!!

 public  class Turma  
 {  
          
    private int codigoTurma;  
    private String semestre;  
    private Date ano;  
    private int codigoDisciplina;  
    private Disciplina disciplina;  
    private int matProfessor;   
   
 ...getters and setters...  
 }

Tem certeza que a Turma nao tem o nome da disciplina?

De acordo com os seus beans, tente o seguinte:

Turma t = new Turma();
t.getDisciplina().getNomeTurma();

Pense no seguinte:
Uma Turma terá somente uma disciplina?
Uma disciplina será apenas de uma turma?

O ideal seria um relacionamento n:n, onde cada Turma teria uma Lista de Disciplinas e cada disciplina estaria associada a diversas turmas.

class Turma {
  Collection<Disciplina> disciplinas;
  ...
}

class Disciplina {
  Collection<Turma> turmas;
  ...
}

E como são objetos distintos, classes distintas…