Gravar dados selecionados no JComboBox

Eu preciso gravar em uma tabela x do Banco de Dados um item que seleciono na minha JComboBox, que é alimentada a partir de um segunda tabela y. Meu código:

Método para popular o JComboBox

public NovaMatriz() {
    initComponents();

    CaracteristicasDAO dao = new CaracteristicasDAO();
    for(Caracteristicas c: dao.read()){
        cmbcaracteristicas.addItem(c);
    }
}

Classe DAO

public List<Caracteristicas> read() {
    try {
        //1 passo - criar o vetor que vai armazenar os registros do banco
        List<Caracteristicas> lista = new ArrayList<Caracteristicas>();

        //2 passo - criar o comando sql
        String cmdSql = "select * from caracteristicas";
        PreparedStatement stmt = conecta.prepareStatement(cmdSql);

        //3 passo - Guarda o resultado do select dentro do objeto RS (resultSet)
        ResultSet rs = stmt.executeQuery();

        //4 passo - Enquanto houver registros (resultado do select) guarde o registro na lista
        while (rs.next()) {
            Caracteristicas c = new Caracteristicas();
            c.setCaracteristicas(rs.getString("caracteristicas"));
            lista.add(c);
        }
        return lista;
    } catch (SQLException erro) {
        throw new RuntimeException(erro);
    }
}

Classe Beans

public class Caracteristicas {

//atributos
private Integer idcaracteristica;
private String caracteristicas;

//getter e setter

public Integer getIdcaracteristica() {
    return idcaracteristica;
}

public void setIdcaracteristica(Integer idcaracteristica) {
    this.idcaracteristica = idcaracteristica;
}

public String getCaracteristicas() {
    return caracteristicas;
}

public void setCaracteristicas(String caracteristicas) {
    this.caracteristicas = caracteristicas;
}

@Override
public String toString() {
    return getCaracteristicas(); //To change body of generated methods, choose Tools | Templates.
}
}

Botão salvar

try {
            //botão salvar

            //1 passo - guardar os dados da tela no obj matrizes
            Matrizes obj = new Matrizes();
            obj.setNumero(txtnumero.getText());
            obj.setNome(txtnome.getText());
            obj.setCaracteristicas((String) cmbcaracteristicas.getSelectedItem());
            obj.setDatanascimento(txtdatanascimento.getText());
            obj.setProprietario(txtproprietario.getText());
            obj.setNomepai(txtnomepai.getText());
            obj.setNomemae(txtnomemae.getText());
            obj.setSituacao((String) cmbsituação.getSelectedItem());

            //2 pass0 - criar objeto do tipo matrizesDAO
            MatrizesDAO dao = new MatrizesDAO();
            dao.cadastrarMatriz(obj);

            JOptionPane.showMessageDialog(null, "Cadastro Realizado com Sucesso!");
        } catch (Exception erro) {
            System.out.println(erro);
            JOptionPane.showMessageDialog(null, erro);
        }

O problema é que quando eu vou salvar na tabela y o que foi selecionado no JComboBox aparece o seguinte erro:

java.lang.ClassCastException : JavaBeans.Caracteristicas cannot be cast to java.lang.String

Então, meu código está exatamente assim, mas ele dá o erro lá de cima