Estou utilizando o “Form de amostra Mestre/Detalhe”, que faz o formulário e a classe relacionado ao banco de dados automaticamente (Estou utilizando o EclipseLink JPA 2.1 como persistence) . Quando mando deletar alguma linha, ele deleta corretamente. Porém, ao inserir uma nova, ele não “atualiza” o ID, e mantem sempre a sequencia de ID, mesmo que eu tenha excluido TODOS os registros, ele nao zera o ID. Alguém poderia me Ajudar? Grato!
Banco de dados antes:

Mando deletar:

Clico em novo e preencho:

Ao salvar e atualizar:

Código JCadMedico.java:
public class JCadMedico extends JPanel {
public JCadMedico() {
initComponents();
if (!Beans.isDesignTime()) {
entityManager.getTransaction().begin();
}
}
@SuppressWarnings(“unchecked”)
@SuppressWarnings(“unchecked”)
private void refreshButtonActionPerformed(java.awt.event.ActionEvent evt) {
idmedicoField.setText(" ");
entityManager.getTransaction().rollback();
entityManager.getTransaction().begin();
java.util.Collection data = query.getResultList();
for (Object entity : data) {
entityManager.refresh(entity);
}
list.clear();
list.addAll(data);
}
private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {
int[] selected = masterTable.getSelectedRows();
List<model.Medico> toRemove = new ArrayList<model.Medico>(selected.length);
for (int idx = 0; idx < selected.length; idx++) {
model.Medico m = list.get(masterTable.convertRowIndexToModel(selected[idx]));
toRemove.add(m);
entityManager.remove(m);
}
list.removeAll(toRemove);
if(JOptionPane.showConfirmDialog(null, "Deseja realmente excluir os registros? ", "Alerta! ", JOptionPane.YES_OPTION, JOptionPane.WARNING_MESSAGE)==0){
saveButtonActionPerformed(evt);
}
else{
refreshButtonActionPerformed(evt);
}
}
private void newButtonActionPerformed(java.awt.event.ActionEvent evt) {
model.Medico m = new model.Medico();
entityManager.persist(m);
list.add(m);
int row = list.size() - 1;
masterTable.setRowSelectionInterval(row, row);
masterTable.scrollRectToVisible(masterTable.getCellRect(row, 0, true));
idmedicoField.setText(Integer.toString(masterTable.getRowCount()));
System.out.println(list);
}
private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {
try {
entityManager.getTransaction().commit();
entityManager.getTransaction().begin();
} catch (RollbackException rex) {
rex.printStackTrace();
entityManager.getTransaction().begin();
List<model.Medico> merged = new ArrayList<model.Medico>(list.size());
for (model.Medico m : list) {
merged.add(entityManager.merge(m));
}
list.clear();
list.addAll(merged);
}
}
// Variables declaration - do not modify
private javax.swing.JTextField crmField;
private javax.swing.JLabel crmLabel;
private javax.swing.JButton deleteButton;
private javax.persistence.EntityManager entityManager;
private javax.swing.JTextField idmedicoField;
private javax.swing.JLabel idmedicoLabel;
private java.util.List<model.Medico> list;
private javax.swing.JScrollPane masterScrollPane;
private javax.swing.JTable masterTable;
private javax.swing.JButton newButton;
private javax.swing.JTextField nomeField;
private javax.swing.JLabel nomeLabel;
private javax.persistence.Query query;
private javax.swing.JButton refreshButton;
private javax.swing.JButton saveButton;
private org.jdesktop.beansbinding.BindingGroup bindingGroup;
// End of variables declaration
public static void main(String[] args) {
/* Create and display the form */
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame();
frame.setContentPane(new JCadMedico());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
});
}
}
