I have a mysql db from which i have generated the TransferObject Using Hibernate. There is a one to many relationship beteween city and patients, city and doctors, specialty and doctors. However i don't get any returned values when querying the database from those one to many relationships.
When i test RestFul End Points i get:
/doctors/all
[{"id":1,"email":"papa#papa.com","fatherName":"πατέρας","firstName":"όνομα","lastName":"επίθετο","telephone":"2821074737"},{"id":2,"email":"lala#gmail.com","fatherName":"dfjs","firstName":"Ιωσήφ","lastName":"Βαρουξάκης","telephone":"8583848824"},{"id":3,"email":"","fatherName":"","firstName":"Χαράλαμπος","lastName":"Πρωτοπαπαδάκης","telephone":"4343454345"},{"id":4,"email":"","fatherName":"","firstName":"Ελευθέριος","lastName":"Παπαδάκης","telephone":"2821084834"},{"id":5,"email":"","fatherName":"","firstName":"Παναγιώτης","lastName":"Τζεράκης","telephone":"28210848383"},{"id":6,"email":"","fatherName":"","firstName":"Κων/νος","lastName":"Κωνσταντινίδης","telephone":"2821084838"},{"id":7,"email":"","fatherName":"","firstName":"Παναγιώτης","lastName":"Ψιστάκης","telephone":"2810838383"},{"id":8,"email":"","fatherName":"Εμμανουήλ","firstName":"Θεανώ","lastName":"Πατακάκη","telephone":"2821048438"},{"id":9,"email":"","fatherName":"","firstName":"Μαρία","lastName":"Καφούση","telephone":"2810848283"},{"id":10,"email":"","fatherName":"","firstName":"Μανούσος","lastName":"Χριστοδουλάκης","telephone":"2810848383"},{"id":11,"email":"saf#fdsa.gr","fatherName":"αφδσ","firstName":"φδσα","lastName":"σφδ","telephone":"2323233223"},{"id":12,"email":"","fatherName":"φεδσαφ","firstName":"φδσαφδσα","lastName":"φδσαφγσφαδ","telephone":"3333333333"},{"id":13,"email":"mixtou#gmail.co","fatherName":"Dimitrios","firstName":"Toutoudakis","lastName":"Mixail","telephone":"6948571893"}]
/patients/all
[{"id":1,"birthday":"1975-08-19","email":"mixtou#gmail.com","fatherName":"Δημήτριος","firstName":"Μιχαήλ","lastName":"Τουτουδάκης","telephone":"6948571893","sex":true},{"id":2,"birthday":"1942-06-10","email":"lla#gmail.com","fatherName":"Μιχαήλ","firstName":"Δημήτριος","lastName":"Τουτουδάκης","telephone":"7364927473","sex":true},{"id":3,"birthday":"1975-05-06","email":"lala#gmail.com","fatherName":"Μιχαήλ","firstName":"Μιχαήλ","lastName":"Μαραγκάκης","telephone":"8484848484","sex":false},{"id":4,"birthday":"1957-08-14","email":"lasdjf#lkdafs.gr","fatherName":"Τεστ","firstName":"Μηνάς","lastName":"Παπαδάκης","telephone":"8484842747","sex":false},{"id":5,"birthday":"2018-03-26","email":"","fatherName":"","firstName":"Στέφανος","lastName":"Μαριόλος","telephone":"4838583845","sex":true},{"id":6,"birthday":"2018-03-20","email":"jkdas#gjal.com","fatherName":"Μ..κας","firstName":"Κων/νος","lastName":"Μπλαζάκης","telephone":"2347878763","sex":false},{"id":7,"birthday":"2018-03-08","email":"ajs#gjla;.gr","fatherName":"pateras","firstName":"f;ldas","lastName":"akdfsj","telephone":"445354345453","sex":true},{"id":8,"birthday":"2018-03-12","email":"lala#gam.gr","fatherName":"Εμμανουήλ","firstName":"Ιωάννης","lastName":"Μαλανδράκης","telephone":"4343434343","sex":false},{"id":9,"birthday":"1980-05-12","email":"antonis#gmai.com","fatherName":"Δεν Ξέρω","firstName":"Αντώνιος","lastName":"Ιγγλεζάκης","telephone":"28210848484","sex":false},{"id":10,"birthday":"2018-04-19","email":"test#etes.gr","fatherName":"test","firstName":"test`","lastName":"tet","telephone":"2345674424","sex":false},{"id":11,"birthday":"1984-02-13","email":"lala#gmail.com","fatherName":"Δημήτριος","firstName":"Ιωάννης","lastName":"Μαλανδράκης","telephone":"1223323344","sex":false},{"id":12,"birthday":"2018-05-16","email":"lala#gmail.com","fatherName":"Τεεε","firstName":"Τέστης","lastName":"Τεστάκης","telephone":"84848484823","sex":false},{"id":13,"birthday":"2018-06-05","email":"lala#gmail.com","fatherName":"test","firstName":"test","lastName":"test","telephone":"2821022222","sex":true}]
/cities/all
[{"id":4,"name":"Αγ. Νικόλαος"},{"id":3,"name":"Ηράκλειο"},{"id":2,"name":"Ρέθυμνο"},{"id":5,"name":"Ρόδος"},{"id":1,"name":"Χανιά"}]
/specialties/all
[{"id":1,"name":"Αγγειοχειρουργική"},{"id":2,"name":"Αιματολογία"},{"id":3,"name":"Ακτινοδιαγνωστική"},{"id":4,"name":"Ακτινοθεραπευτική"},{"id":5,"name":"Αλλεργιολογία"},{"id":6,"name":"Αναισθησιολογία"},{"id":7,"name":"Γαστρεντερολογία"},{"id":8,"name":"Γενική Ιατρική"},{"id":9,"name":"Δερματολογία"},{"id":10,"name":"Ενδοκρινολογία"},{"id":12,"name":"Ιατρική Εργασίας"},{"id":13,"name":"Ιατροδικαστική"},{"id":14,"name":"Καρδιολογία"},{"id":15,"name":"Κυτταρολογία"},{"id":16,"name":"Μαιευτική Γυναικολογία"},{"id":11,"name":"Μικροβιολογία"},{"id":17,"name":"Νευρολογία"},{"id":18,"name":"Νευροχειρουργική"},{"id":19,"name":"Νεφρολογία"},{"id":20,"name":"Ορθοπαιδική"},{"id":21,"name":"Ουρολογία"},{"id":22,"name":"Οφθαλμολογία"},{"id":23,"name":"Παθολογία"},{"id":24,"name":"Παθολογική Ανατομική"},{"id":25,"name":"Παθολογική Ογκολογία"},{"id":26,"name":"Παιδιατρική"},{"id":27,"name":"Παιδοψυχιατρική"},{"id":28,"name":"Πλαστική Χειρουργική"},{"id":29,"name":"Πνευμονολογία - Φυματιολογία"},{"id":30,"name":"Πυρηνική Ιατρική"},{"id":31,"name":"Ρευματολογία"},{"id":39,"name":"Στοματική & Γναθοπροσωπική Χειρουργική"},{"id":32,"name":"Φυσική Ιατρική και Αποκατάσταση"},{"id":33,"name":"Χειρουργική"},{"id":36,"name":"Χειρουργική Β΄"},{"id":34,"name":"Χειρουργική Θώρακος"},{"id":35,"name":"Χειρουργική Παίδων"},{"id":37,"name":"Ψυχιατρική"},{"id":38,"name":"ΩΡΛ"}]
Everything works ok with one exception. The city and specialty relationship. I get no city or specialty data in replies.
Below is my implementation
My persistence.xml is:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1">
<persistence-unit name="PersistenceUnit">
<!--<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>-->
<class>gr.histopath.platform.model.TransferObjects.BodyPart</class>
<class>gr.histopath.platform.model.TransferObjects.City</class>
<class>gr.histopath.platform.model.TransferObjects.Clinic</class>
<class>gr.histopath.platform.model.TransferObjects.Doctor</class>
<class>gr.histopath.platform.model.TransferObjects.Incident</class>
<class>gr.histopath.platform.model.TransferObjects.Patient</class>
<class>gr.histopath.platform.model.TransferObjects.SigningDoctor</class> <class>gr.histopath.platform.model.TransferObjects.Specialty</class>
<class>gr.histopath.platform.model.TransferObjects.User</class>
<properties>
<!--<property name="hibernate.hbm2ddl.auto" value="create"/>-->
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/histopath.gr?useSSL=false&useLegacyDatetimeCode=false&serverTimezone=Europe/Athens"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.username" value="histopathUser"/>
<!--<property name="hibernate.connection.username" value="root"/>-->
<property name="hibernate.connection.password" value="h1s+0p#+h"/>
<!--<property name="hibernate.connection.password" value="Malak1es"/>-->
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hbm2ddl.auto" value="update"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.connection.provider_class" value="org.hibernate.c3p0.internal.C3P0ConnectionProvider"/>
<property name="hibernate.connection.CharSet" value="utf8"/>
<property name="hibernate.connection.characterEncoding" value="utf8"/>
<property name="hibernate.connection.useUnicode" value="true"/>
<property name="connection.pool_size" value="1"/>
<!--<property name="hibernate.search.default.directory_provider" value="filesystem"/>-->
<!-- hibernate c3p0 connection pooling configuration -->
<property name="hibernate.c3p0.acquire_increment" value="1"/>
<property name="hibernate.c3p0.idle_test_period" value="60"/> <!-- seconds -->
<property name="hibernate.c3p0.min_size" value="5"/>
<property name="hibernate.c3p0.max_size" value="20"/>
<property name="hibernate.c3p0.max_statements" value="50"/>
<property name="hibernate.c3p0.timeout" value="0"/> <!-- seconds -->
<property name="hibernate.c3p0.acquireRetryAttempts" value="1"/>
<property name="hibernate.c3p0.acquireRetryDelay" value="250"/>
</properties>
</persistence-unit>
</persistence>
The Transfer Objects are:
City.java
package gr.histopath.platform.model.TransferObjects;
import com.fasterxml.jackson.annotation.JsonIgnore;
import javax.persistence.*;
import java.util.Collection;
import java.util.Objects;
#Entity
public class City {
private int id;
private String name;
private Collection<Doctor> doctors;
private Collection<Patient> patients;
#Id
#Column(name = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
#Basic
#Column(name = "name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
#Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
City city = (City) o;
return id == city.id &&
Objects.equals(name, city.name);
}
#Override
public int hashCode() {
return Objects.hash(id, name);
}
#OneToMany(mappedBy = "city")
#JsonIgnore
public Collection<Doctor> getDoctors() {
return doctors;
}
public void setDoctors(Collection<Doctor> doctorsById) {
this.doctors = doctorsById;
}
#OneToMany(mappedBy = "city")
#JsonIgnore
public Collection<Patient> getPatients() {
return patients;
}
public void setPatients(Collection<Patient> patientsById) {
this.patients = patientsById;
}
}
Doctor.java
package gr.histopath.platform.model.TransferObjects;
import com.fasterxml.jackson.annotation.JsonIgnore;
import javax.persistence.*;
import java.util.Collection;
import java.util.Objects;
#Entity
public class Doctor {
private int id;
private String email;
private String fatherName;
private String firstName;
private String lastName;
private String telephone;
private City city;
private Specialty specialty;
private Collection<Incident> incidents;
#Id
#Column(name = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
#Basic
#Column(name = "email")
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
#Basic
#Column(name = "fatherName")
public String getFatherName() {
return fatherName;
}
public void setFatherName(String fatherName) {
this.fatherName = fatherName;
}
#Basic
#Column(name = "firstName")
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
#Basic
#Column(name = "lastName")
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
#Basic
#Column(name = "telephone")
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
#Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Doctor doctor = (Doctor) o;
return id == doctor.id &&
Objects.equals(email, doctor.email) &&
Objects.equals(fatherName, doctor.fatherName) &&
Objects.equals(firstName, doctor.firstName) &&
Objects.equals(lastName, doctor.lastName) &&
Objects.equals(telephone, doctor.telephone);
}
#Override
public int hashCode() {
return Objects.hash(id, email, fatherName, firstName, lastName, telephone, city, specialty);
}
#ManyToOne
#JoinColumn(name = "city_id", referencedColumnName = "id")
#JsonIgnore
public City getCity() {
return city;
}
public void setCity(City cityByCityId) {
this.city = cityByCityId;
}
#ManyToOne
#JoinColumn(name = "specialty_id", referencedColumnName = "id")
#JsonIgnore
public Specialty getSpecialty() {
return specialty;
}
public void setSpecialty(Specialty specialtyBySpecialtyId) {
this.specialty = specialtyBySpecialtyId;
}
#OneToMany(mappedBy = "doctor")
#JsonIgnore
public Collection<Incident> getIncidents() {
return incidents;
}
public void setIncidents(Collection<Incident> incidentsById) {
this.incidents = incidentsById;
}
}
Patient.java
package gr.histopath.platform.model.TransferObjects;
import com.fasterxml.jackson.annotation.JsonIgnore;
import javax.persistence.*;
import java.sql.Date;
import java.util.Collection;
import java.util.Objects;
#Entity
public class Patient {
private int id;
private Date birthday;
private String email;
private String fatherName;
private String firstName;
private String lastName;
private String telephone;
private Boolean sex;
private Collection<Incident> incidents;
private City city;
#Id
#Column(name = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
#Basic
#Column(name = "birthday")
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
#Basic
#Column(name = "email")
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
#Basic
#Column(name = "fatherName")
public String getFatherName() {
return fatherName;
}
public void setFatherName(String fatherName) {
this.fatherName = fatherName;
}
#Basic
#Column(name = "firstName")
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
#Basic
#Column(name = "lastName")
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
#Basic
#Column(name = "telephone")
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
#Basic
#Column(name = "sex")
public Boolean getSex() {
return sex;
}
public void setSex(Boolean sex) {
this.sex = sex;
}
#Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Patient patient = (Patient) o;
return id == patient.id &&
Objects.equals(birthday, patient.birthday) &&
Objects.equals(email, patient.email) &&
Objects.equals(fatherName, patient.fatherName) &&
Objects.equals(firstName, patient.firstName) &&
Objects.equals(lastName, patient.lastName) &&
Objects.equals(telephone, patient.telephone) &&
Objects.equals(sex, patient.sex) &&
Objects.equals(incidents, patient.incidents) &&
Objects.equals(city, patient.city);
}
#Override
public int hashCode() {
return Objects.hash(id, birthday, email, fatherName, firstName, lastName, telephone, sex, incidents, city);
}
#OneToMany(mappedBy = "patient")
#JsonIgnore
public Collection<Incident> getIncidents() {
return incidents;
}
public void setIncidents(Collection<Incident> incidentsById) {
this.incidents = incidentsById;
}
#ManyToOne
#JsonIgnore
#JoinColumn(name = "city_id", referencedColumnName = "id")
public City getCity() {
return city;
}
public void setCity(City cityByCityId) {
this.city = cityByCityId;
}
}
Specialty.java
package gr.histopath.platform.model.TransferObjects;
import com.fasterxml.jackson.annotation.JsonIgnore;
import javax.persistence.*;
import java.util.Collection;
import java.util.Objects;
#Entity
public class Specialty {
private int id;
private String name;
private Collection<Doctor> doctors;
#Id
#Column(name = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
#Basic
#Column(name = "name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
#Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Specialty specialty = (Specialty) o;
return id == specialty.id &&
Objects.equals(name, specialty.name);
}
#Override
public int hashCode() {
return Objects.hash(id, name);
}
#OneToMany(mappedBy = "specialty")
#JsonIgnore
public Collection<Doctor> getDoctors() {
return doctors;
}
public void setDoctors(Collection<Doctor> doctorsById) {
this.doctors = doctorsById;
}
}
Any Ideas why values don't get returned?? Values exist in database, i can see them in mysql workbench or by simply querying the whole table. Do i forget to do something?? I think my error will be ridiculous
It was caused by #JsonIgnore annotation. In my above example i have put it in both sides of the relationships (Both in #ManyToOne and #OneToMany).
The problem was solved by removing it from #ManyToOne side and leaving it only at #OneToMany side.
Good you solved your problem. I was reading your question and can't resist from commenting.
You should revisit your domain model (relationships). With current domain model, eventually you will face performance issue along with others.
If possible then remove one-to-many relationships between Specialty to Doctor; Patient to Incident; Doctor to Incident and City to Doctor, Patient.
Instead make Spcialty, Doctor, Patient and City as Master Entities (lifecycle won't depend on other entities. And keep following relationships:
Doctor to Specialty: many to one
Incident to Patient, Doctor: both many to one
Doctor to City: many to one
Patient to City: many to one
No one to many relationship is required.
Now if you want to fetch all the doctors in a city then do something like findAllByCity(City city).
When you create an Incident then you just need to pick Doctor and Patient and save the Incident. No need to cascade from Doctor and Patient side.
Final point: use secondary cache. It will share the performance burden with database.
I am having rest method in spring controller like below:
#RequestMapping(value="/register/{userName}" ,method=RequestMethod.GET)
#ResponseBody
public String getUserName(HttpServletRequest request,#PathVariable String userName ){
System.out.println("User Name : "+userName);
return "available";
}
In jquery I have writeen ajax call like:
$(document).ready(function(){
$('#userName').blur(function(){
var methodURL = "http://localhost:8085/ums/register/"+$('#userName').val();
$.ajax({
type : "get",
URL : methodURL,
data : $('#userName').val(),
success : function(data){
alert(data);
$('#available').show();
}
})
});
});
In web.xml I have:
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
In spring-servlet.xml I have the view resolver like below:
<context:component-scan base-package="com.users.controller" />
<context:annotation-config />
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="1"/>
<property name="mediaTypes">
<map>
<entry key="json" value="application/json" />
<entry key="xml" value="text/xml" />
<entry key="htm" value="text/html" />
</map>
</property>
<property name="ignoreAcceptHeader" value="true" />
<!-- <property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />-->
<property name="defaultContentType" value="text/html" />
</bean>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="order" value="2" />
<property name="prefix">
<value>/WEB-INF/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
When I am running this in server, it is not going to controller.
Please let me know the problem with this code.
Please can any one help on this.
Regards,
Shruti
Since you have the #RequestMapping(value="register/{userName}" on your method definition, your jquery call must follow the same syntax.
var methodURL = "http://localhost:8085/users/register/"+$('#userName').val()+".html";
But you have also a problem in your RequestMapping value, it should start with /
#RequestMapping(value="/register/{userName}"
Also I doubt that you need the ".html" at the end
Add this line to your spring-servlet.xml. It will enable the Web MVC specific annotations like #Controller and #RequestMapping
<mvc:annotation-driven />
Example of an annotated controller
Assuming the url with context is http://localhost:8080/webapp and you want an api call like url /users/register/johnDoe. (johnDoe being the username)
You controller class would look something like the following.
#Controller
#RequestMapping(value="/users")
class UserController {
#ResponseBody
#RequestMapping(value="/register/{username}", method=RequestMethod.GET)
public String registerUser(#PathVariable String username) {
return username;
}
}
Please find my solution for calling REST web-services in Spring Framework.
/**
* REST API Implementation Using REST Controller
* */
#RestController
public class RestReqCntrl {
#Autowired
private UserService userService;
#Autowired
private PayrollService payrollService;
//-------------------Create a User--------------------------------------------------------
#RequestMapping(value = "/registerUser", method = RequestMethod.POST)
public ResponseEntity<User> registerUser(#RequestBody User user, UriComponentsBuilder ucBuilder) throws Exception {
System.out.println("Creating User " + user.getFirstName());
boolean flag = userService.registerUser(user);
if (flag)
{
user.setStatusCode(1);
user.setStatusDesc("PASS");
}else{
user.setStatusCode(0);
user.setStatusDesc("FAIL");
}
HttpHeaders headers = new HttpHeaders();
headers.setLocation(ucBuilder.path("/registerUser").buildAndExpand(user.getId()).toUri());
return new ResponseEntity<User>(user,headers, HttpStatus.CREATED);
}
//-------------------Authenticating the User--------------------------------------------------------
#RequestMapping(value = "/authuser", method = RequestMethod.POST)
public ResponseEntity<User> authuser(#RequestBody User user,UriComponentsBuilder ucBuilder) throws Exception {
System.out.println("Creating User " + user.getFirstName());
boolean flag = userService.authUser(user);
if (flag)
{
user.setStatusCode(1);
user.setStatusDesc("PASS");
}else{
user.setStatusCode(0);
user.setStatusDesc("FAIL");
}
HttpHeaders headers = new HttpHeaders();
headers.setLocation(ucBuilder.path("/authuser").buildAndExpand(user.getFirstName()).toUri());
return new ResponseEntity<User>(user,headers, HttpStatus.ACCEPTED);
}
//-------------------Create a Company--------------------------------------------------------
#RequestMapping(value = "/registerCompany", method = RequestMethod.POST)
public ResponseEntity<String> registerCompany(#RequestBody ComypanyDTO comypanyDTO, UriComponentsBuilder ucBuilder) throws Exception {
System.out.println("Creating comypanyDTO " + comypanyDTO.getCmpName());
String result ="";
boolean flag = payrollService.registerCompany(comypanyDTO);
if (flag)
{
result="Pass";
}else{
result="Fail";
}
HttpHeaders headers = new HttpHeaders();
headers.setLocation(ucBuilder.path("/registerCompany").buildAndExpand(result).toUri());
return new ResponseEntity<String>(result,headers, HttpStatus.ACCEPTED);
}
//-------------------Create a Employee--------------------------------------------------------
#RequestMapping(value = "/registerEmployee", method = RequestMethod.POST)
public ResponseEntity<String> registerEmployee(#RequestBody EmployeeDTO employeeDTO, UriComponentsBuilder ucBuilder) throws Exception {
System.out.println("Creating registerCompany " + employeeDTO.getEmpCode());
String result ="";
boolean flag = payrollService.registerEmpbyComp(employeeDTO);
if (flag)
{
result="Pass";
}else{
result="Fail";
}
HttpHeaders headers = new HttpHeaders();
headers.setLocation(ucBuilder.path("/registerCompany").buildAndExpand(result).toUri());
return new ResponseEntity<String>(result,headers, HttpStatus.ACCEPTED);
}
//-------------------Get Company Deatils--------------------------------------------------------
#RequestMapping(value = "/getCompanies", method = RequestMethod.GET)
public ResponseEntity<List<ComypanyDTO> > getCompanies(UriComponentsBuilder ucBuilder) throws Exception {
System.out.println("getCompanies getCompanies ");
List<ComypanyDTO> comypanyDTOs =null;
comypanyDTOs = payrollService.getCompanies();
//Setting the Respective Employees
for(ComypanyDTO dto :comypanyDTOs){
dto.setEmployeeDTOs(payrollService.getEmployes(dto.getCompanyId()));
}
HttpHeaders headers = new HttpHeaders();
headers.setLocation(ucBuilder.path("/registerCompany").buildAndExpand("LISt").toUri());
return new ResponseEntity<List<ComypanyDTO>>(comypanyDTOs,headers, HttpStatus.ACCEPTED);
}
}
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
#Entity
#Table(name="USER_TABLE")
public class User implements Serializable {
#Id #GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String firstName;
private String lastName;
private String email;
private String userId;
private String password;
private String userType;
private String address;
#Transient
private int statusCode;
#Transient
private String statusDesc;
public User(){
}
public User(String firstName, String lastName, String email, String userId, String password, String userType,
String address) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.userId = userId;
this.password = password;
this.userType = userType;
this.address = address;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
/**
* #return the userType
*/
public String getUserType() {
return userType;
}
/**
* #param userType the userType to set
*/
public void setUserType(String userType) {
this.userType = userType;
}
/**
* #return the address
*/
public String getAddress() {
return address;
}
/**
* #param address the address to set
*/
public void setAddress(String address) {
this.address = address;
}
/**
* #return the statusCode
*/
public int getStatusCode() {
return statusCode;
}
/**
* #param statusCode the statusCode to set
*/
public void setStatusCode(int statusCode) {
this.statusCode = statusCode;
}
/**
* #return the statusDesc
*/
public String getStatusDesc() {
return statusDesc;
}
/**
* #param statusDesc the statusDesc to set
*/
public void setStatusDesc(String statusDesc) {
this.statusDesc = statusDesc;
}
}