Mám jeden subjekt s názvem "Program". Dělám některé operace s tímto subjektem. Ale nevím, jak nebo proč, moje bytost se aktualizuje i já jsem stále výjimkou. Takže může mi někdo pomoci vyřešit tento problém.
Regulátor
@GetMapping("/testtransaction/{tid}")
public ApiResponse testTransaction(@PathVariable("tid") String tid){
return gsService.testTransaction(tid);
}
Služby
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = Exception.class)
public ApiResponse testTransaction(String tid) {
ApiResponse apiResponse = new ApiResponse();
try {
Optional<Program> existProgram = programRepository.findById(tid);
if(existProgram.isPresent()) {
//For testing I am setting random value
existProgram.get().setProgramName("tid_"+(Math.floor(Math.random() * 90 + 10)));
try {
int err = 8/0;
}catch(Exception e) {
throw new EntityNotFoundException(Program.class, "prog cd", tid);
}
programRepository.save(existProgram.get());
apiResponse.setData("Success");
}else {
apiResponse.setError("Program details not found for "+tid);
apiResponse.setStatusCode(500);
}
}catch(Exception e) {
apiResponse.setError("Something went wrong while testing.");
apiResponse.setStatusCode(500);
return apiResponse;
}
return apiResponse;
}
Subjekt
package com.edudb.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Entity
@JsonInclude(value=Include.NON_NULL)
@Table(name = "PROGRAM_MASTER")
public class Program {
@Id
@Column(name = "PROGRAM_CD")
private String programCd;
@Column(name = "PROGRAM_NAME")
@Size(min=1, max=100, message = "Minimum 1 & maximum 100 characters only")
private String programName;
@Column(name="ENT_BY")
@Size(min=1, max=12, message = "Minimum 1 & maximum 12 characters only")
private String entBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="dd MMM yyyy")
@Column(name = "ENT_DT")
@Temporal(TemporalType.DATE)
private Date entDt;
@Column(name="DEL_BY")
@Size(min=1, max=12, message = "Minimum 1 & maximum 12 characters only")
private String delBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="dd MMM yyyy")
@Column(name = "DEL_DT")
@Temporal(TemporalType.DATE)
private Date delDt;
@Column(name="LAST_UPDT_BY")
@Size(min=1, max=12, message = "Minimum 1 & maximum 12 characters only")
private String updtBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="dd MMM yyyy")
@Column(name = "LAST_UPDT_DT")
@Temporal(TemporalType.DATE)
private Date updtDt;
}
Odpověď, co jsem dostat na pošťáka
{
"statusCode": 500,
"error": "Something went wrong while testing."
}
Jarní boot log
2021-11-23 10:34:20 DEBUG --- origin:null
: com.datanet.filter.SimpleCorsFilter 2021-11-23 10:34:20 DEBUG ---
select
program0_.program_cd as program_cd1_83_0_,
program0_.del_by as del_by2_83_0_,
program0_.del_dt as del_dt3_83_0_,
program0_.ent_by as ent_by4_83_0_,
program0_.ent_dt as ent_dt5_83_0_,
program0_.program_name as program_name6_83_0_,
program0_.last_updt_by as last_updt_by7_83_0_,
program0_.last_updt_dt as last_updt_dt8_83_0_
from
program_master program0_
where
program0_.program_cd=?
: org.hibernate.SQL 2021-11-23 10:34:20 TRACE --- binding parameter [1] as [VARCHAR] - [demo]
: ibernate.type.descriptor.sql.BasicBinder2021-11-23 10:34:20 DEBUG ---
update
program_master
set
del_by=?,
del_dt=?,
ent_by=?,
ent_dt=?,
program_name=?,
last_updt_by=?,
last_updt_dt=?
where
program_cd=?
: org.hibernate.SQL 2021-11-23 10:34:20 TRACE --- binding parameter [1] as [VARCHAR] - [john]
: ibernate.type.descriptor.sql.BasicBinder2021-11-23 10:34:20 TRACE --- binding parameter [2] as [DATE] - [2021-10-06]
: ibernate.type.descriptor.sql.BasicBinder2021-11-23 10:34:20 TRACE --- binding parameter [3] as [VARCHAR] - [peter]
: ibernate.type.descriptor.sql.BasicBinder2021-11-23 10:34:20 TRACE --- binding parameter [4] as [DATE] - [2021-10-06]
: ibernate.type.descriptor.sql.BasicBinder2021-11-23 10:34:20 TRACE --- binding parameter [5] as [VARCHAR] - [tid_52.0]
: ibernate.type.descriptor.sql.BasicBinder2021-11-23 10:34:20 TRACE --- binding parameter [6] as [VARCHAR] - [john]
: ibernate.type.descriptor.sql.BasicBinder2021-11-23 10:34:20 TRACE --- binding parameter [7] as [DATE] - [2021-10-06]
: ibernate.type.descriptor.sql.BasicBinder2021-11-23 10:34:20 TRACE --- binding parameter [8] as [VARCHAR] - [demo]
: ibernate.type.descriptor.sql.BasicBinder
Takže pokud má někdo čelí tento problém dříve, můžete, prosím, pomozte mi opravit :(