JAVA - Como alterar registro gravado no banco de dados pelo botão

Então, sou novato em Java, e desejaria concluir meu projeto (Um sistema simples de Controle de estoque e registro de vendas para uma Mercearia) utilizando FXML para as telas, JPA para mapear o banco no mySQL, e o eclipse para programar o software.

Meu método de cadastro de produtos já está pronto, porém não tenho ideia de como alterar os registros já feitos utilizando o método de um botão, necessito de ajuda. Obrigado

Classe Produto:

@Entity
public class Produto {

@Id
private String numero;
private String nome;
private Double preco;

public Produto() {
}

public Produto(String numero, String nome, Double preco) {
	this.numero = numero;
	this.nome = nome;
	this.preco = preco;
}


public String getNumero() {
	return numero;
}

public void setNumero(String numero) {
	this.numero = numero;
}

public String getNome() {
	return nome;
}

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

public Double getPreco() {
	return preco;
}

public void setPreco(Double preco) {
	this.preco = preco;
}

Classe ProdutoDAO:

public class ProdutoDAO {

public boolean cadastrar(Produto produto){

	boolean resp = false;
	
	EntityManager em = JPAUtil.geEntityManager();
	
	try {
		em.getTransaction().begin();
		em.persist(produto);
		em.getTransaction().commit();
		
		resp = true;
		
		
	} catch (Exception e) {
		
		Alert a = new Alert( AlertType.ERROR);
		a.setHeaderText("ERRO PRODUTO");
		a.setContentText(e.getMessage());
		a.show();
	}
	
	return resp;
	
	
}	

CadastroCTR:

public class CadastroCTR implements Initializable {

@FXML
private Button bVoltar;

@FXML
private TextField PrecoUnit;

@FXML
private TextField DescricaoProduto;

@FXML
private TextField NomeProduto;

@FXML
private Button bSalvar;

@FXML
private TextField codProduto;

@Override
public void initialize(URL location, ResourceBundle resources) {

	bVoltar.setOnAction( c ->{
		Principal.definirLayout("main");			
	});
		
	
	bSalvar.setOnAction(s -> {

		Produto p1 = new Produto(codProduto.getText(), NomeProduto.getText(), Double.valueOf(PrecoUnit.getText()));

		ProdutoDAO cp = new ProdutoDAO();

		if (cp.cadastrar(p1)) {

			Alert a = new Alert(AlertType.INFORMATION);
			a.setHeaderText("PRODUTO");
			a.setContentText("PRODUTO CADASTRADO COM SUCESSO !!!");
			a.show();

		}

	});

}

No evento do botão vc aciona seu método editar ou salvar da sua DAO informando o objeto já com seus novos valores. Na DAO vc fará fará persist ou merge com seu objeto.