Long securityProfileId = pcr.getSecurityProfile().getProfileId();
if (securityProfileId == null || (this.cascadeType != null)) { // && this.cascadeType.equals(CascadeType.PERSIST))) {
securityProfileId = securityProfileDAO.save(pcr.getSecurityProfile());
}
MapSqlParameterSource params = new MapSqlParameterSource();
params.addValue("concentration", pcr.getConcentration())
.addValue("creationDate", pcr.getCreationDate())
.addValue("pcrUserName", pcr.getPcrCreator())
.addValue("dilution_dilutionId", pcr.getLibraryDilution().getId())
.addValue("securityProfile_profileId", securityProfileId);
if (pcr.getId() == emPCR.UNSAVED_ID) {
SimpleJdbcInsert insert = new SimpleJdbcInsert(template)
.withTableName(TABLE_NAME)
.usingGeneratedKeyColumns("pcrId");
try {
pcr.setId(DbUtils.getAutoIncrement(template, TABLE_NAME));
String name = namingScheme.generateNameFor("name", pcr);
pcr.setName(name);
if (namingScheme.validateField("name", pcr.getName())) {
params.addValue("name", name);
Number newId = insert.executeAndReturnKey(params);
if (newId.longValue() != pcr.getId()) {
log.error("Expected emPCR ID doesn't match returned value from database insert: rolling back...");
new NamedParameterJdbcTemplate(template).update(EMPCR_DELETE, new MapSqlParameterSource().addValue("pcrId", newId.longValue()));
throw new IOException("Something bad happened. Expected emPCR ID doesn't match returned value from DB insert");
}
}
else {
throw new IOException("Cannot save emPCR - invalid field:" + pcr.toString());
}
}
catch (MisoNamingException e) {
throw new IOException("Cannot save emPCR - issue with naming scheme", e);
}
/*
String name = "EMP"+ DbUtils.getAutoIncrement(template, TABLE_NAME);
params.addValue("name", name);
Number newId = insert.executeAndReturnKey(params);
pcr.setPcrId(newId.longValue());
pcr.setName(name);
*/
}
else {
try {
if (namingScheme.validateField("name", pcr.getName())) {
params.addValue("pcrId", pcr.getId())
.addValue("name", pcr.getName());
NamedParameterJdbcTemplate namedTemplate = new NamedParameterJdbcTemplate(template);
namedTemplate.update(EMPCR_UPDATE, params);
}
else {