Я пытаюсь разработать веб-сервисы, используя Spring boot, Hibernate с базой данных MySql. Я использую хранимую процедуру для получения списка. Ответ, который я получаю, не в форме действительного формата json.
[
2,
"7598149597",
"2019-09-02T05:10:43.000+0000",
"Digital Marketing",
"2015002",
"Rohit",
"Ramakrishnan",
"C",
"2019-09-02T05:10:43.000+0000"
]
Вот так я получаю ответ, который на самом деле должен быть таким:
{
"id": 2,
"first_name": "Rohit",
"middle_name": "C",
"last_name": "Ramakrishnan",
"employee_id": "2015002",
"designation": "Digital Marketing",
"contact_number": "7598149597",
"create_date": "2019-09-02T05:10:43.000+0000",
"update_date": "2019-09-02T05:10:43.000+0000"
}
Класс Entity имеет toStringМетод, который возвращает
@Override
public String toString() {
// TODO Auto-generated method stub
return "Employee [id=" + id + ", first_name=" + first_name + ", middle_name=" + middle_name + ", last_name=" + last_name + ", employee_id="+ employee_id + ", designation=" + designation + ", contact_number=" + contact_number + ", create_date=" + create_date + ", update_date=" + update_date +"]";
}
Класс репозитория выглядит следующим образом
@Repository
public class EmployeeDetailsDao {
@Autowired
EntityManager em;
/**
* Retrieve List
* @return
*/
@SuppressWarnings("unchecked")
public Iterable<EmployeeDetailsSP> getEmployeeList(){
return em.createStoredProcedureQuery("find_all_employees").getResultList();
}
Класс контроллера выглядит следующим образом
@RestController
@RequestMapping(value = "/sp/emloyee")
public class EmployeeDetailControllerSP {
@Autowired
EmployeeDetailsDao employeeDetailsDao;
private static final Logger log = LoggerFactory.getLogger(EmployeeDetailControllerSP.class);
/**
* Retrieve List
*
* @return
*/
@GetMapping("retrieve_list")
public Iterable<EmployeeDetailsSP> retrieveList() {
log.debug("retrieve_list");
return employeeDetailsDao.getEmployeeList();
}
EmployeeDetailsSP
@Entity
@Table(name = "employee_details")
@NamedStoredProcedureQueries(value = {
@NamedStoredProcedureQuery(name = "FindEmployeeList", procedureName = "find_all_employees"),
@NamedStoredProcedureQuery(name = "FindEmployeeDetails", procedureName = "find_employee_by_id", parameters = {
@StoredProcedureParameter(mode = ParameterMode.IN, name = "emp_id", type = Integer.class) }),
@NamedStoredProcedureQuery(name = "CheckDuplicateEmployee", procedureName = "check_duplicate", parameters = {
@StoredProcedureParameter(mode = ParameterMode.IN, name = "emp_id", type = Integer.class),
@StoredProcedureParameter(mode = ParameterMode.OUT, name = "emp_count", type = Integer.class) }) })
public class EmployeeDetailsSP {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@NotBlank
private String first_name;
private String middle_name;
@NotBlank
private String last_name;
@NotBlank
private String employee_id;
@NotBlank
private String designation;
@NotBlank
private String contact_number;
@Column(nullable = false, updatable = false)
@Temporal(TemporalType.TIMESTAMP)
@CreatedDate
private Date create_date;
@Column(nullable = false)
@Temporal(TemporalType.TIMESTAMP)
@LastModifiedDate
private Date update_date;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirst_name() {
return first_name;
}
public void setFirst_name(String first_name) {
this.first_name = first_name;
}
public String getMiddle_name() {
return middle_name;
}
public void setMiddle_name(String middle_name) {
this.middle_name = middle_name;
}
public String getLast_name() {
return last_name;
}
public void setLast_name(String last_name) {
this.last_name = last_name;
}
public String getEmployee_id() {
return employee_id;
}
public void setEmployee_id(String employee_id) {
this.employee_id = employee_id;
}
public String getDesignation() {
return designation;
}
public void setDesignation(String designation) {
this.designation = designation;
}
public String getContact_number() {
return contact_number;
}
public void setContact_number(String contact_number) {
this.contact_number = contact_number;
}
public Date getCreate_date() {
return create_date;
}
public void setCreate_date(Date create_date) {
this.create_date = create_date;
}
public Date getUpdate_date() {
return update_date;
}
public void setUpdate_date(Date update_date) {
this.update_date = update_date;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "Employee [id=" + id + ", first_name=" + first_name + ", middle_name=" + middle_name + ", last_name=" + last_name + ", employee_id="+ employee_id + ", designation=" + designation + ", contact_number=" + contact_number + ", create_date=" + create_date + ", update_date=" + update_date +"]";
}