Salve, premetto che sono nuovo all'utilizzo di Hibernate e poco esperto in genere per quanto riguarda l'interfacciamento con i database.
Vengo al nocciolo, in pratica io creo un record, ne setto l'ID e subito dopo lo rendo persistente in memoria (successivamente sarà salvato nel DB). Il problema è che io ne imposto l'ID ma subito dopo la save() questo ID viene modificato e non ne capisco il motivo.
Vi posto il codice di creazione della tabella MySql e subito a seguire il frammento di codice nel quale si verifica l'anomalia.

TABELLA MYSQL:
codice:
-- ----------------------------------------------------- 
-- Table `phoenix`.`patient` --
----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `phoenix`.`patient` ( 
`id_patient` INT NOT NULL AUTO_INCREMENT , 
`p_birthday` DATE NULL , 
`p_sex` VARCHAR(1) NULL , 
`id_p_ethnic_group` INT NULL , 
PRIMARY KEY (`id_patient`) ) 
ENGINE = InnoDB;
FRAMMENTO DI CODICE:
codice:
PatientDAO patientDAO = new PatientDAO();
Patient patient = patientDAO.findById(patientID);
if (patient == null) {
       patient = new Patient();
       patient.setIdPatient(patientID);
       System.out.println("Patient ID: " + patient.getIdPatient());
       String sex = null;
       for (VariableEvaluatedNetworkNodeType exam : exams) {
               if (exam.getLocalName().equalsIgnoreCase( "sex")) {
                          sex = (exam.getValue() == 0.0 ? "m" : "f");
                          break;
               }
       }
       patient.setPSex(sex);
}
ss.save(patient);
System.out.println("Patient ID after save(): " + patient.getIdPatient());
In pratica, alla prima System.out l'ID è corretto, mentre alla seconda l'ID è stato modificato da Hibernate.
Se qualcuno sapesse aiutarmi gliene sarei grato!