Problemas para salvar date na tabela n:m

Pessoal, tenho um sistema para cadastrar alunos em uma turma. Na minha tabela TURMA_HAS_ALUNO no SQL além das duas chaves primárias que recebo tenho uma DATE e um checkbox, porém não estou conseguindo salvar.
O .getMessage aponta: Object: Entidades.TurmaTeoricaHasAlunoPK[ turmaTeoricaCodigoTurma=1, alunoCpfAluno=9099 ] is not a known entity type
E o get cause aponta null. Aqui o exemplo do meu botão salvar.
btSalvar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (acao) { //btInserir
try {
tthaPK = new TurmaTeoricaHasAlunoPK();
ttha = new TurmaTeoricaHasAluno();
tthaPK.setAlunoCpfAluno(fdCpfAluno.getText());
tthaPK.setTurmaTeoricaCodigoTurma(Integer.valueOf(fdCodigoTurma.getText()));
ttha.setDataAula((Date) spinnerdataInicio.getValue());
if (cbPresenca.isSelected()) {
ttha.setCompareceu(true);
} else {
ttha.setCompareceu(false);
}
daoControlePK.inserir(tthaPK);

    //                        EntityManagerFactory factory = Persistence.createEntityManagerFactory("bw_beta");
    //                        EntityManager entityManager = factory.createEntityManager();
    //                        entityManager.getTransaction().begin();
    //                        daoControlePK.inserir(tthaPK);
    //                        entityManager.persist(tthaPK);
    //                        entityManager.getTransaction().commit();
                            labelAviso.setText("Registro inserido com sucesso!");
                            fdCpfAluno.setEnabled(true);
                            fdCpfAluno.requestFocus();
                            fdCpfAluno.setEnabled(false);
                            spinnerdataInicio.setEnabled(false);
                            fdCodigoTurma.setEnabled(false);
                            btSalvar.setVisible(false);
                            btCancelar.setVisible(false);
                            btBuscar.setVisible(true);
                            btListar.setVisible(true);
                        } catch (Exception erro) {
                            labelAviso.setText("Erro nos dados!");
                            System.out.println(erro.getMessage());
                            System.out.println(erro.getCause());
                        }
                    }
                }
            }
            );

ps: perdão, sou nova no forum