0

I am passing date and email through post request and accepting them in validatebasicdetails api. When I am comparing the recieved date that is in yyyy-MM-dd format to the one which is stored in database, I am unable to fetch the expected record.

Post request: { "emailAddress":"smith@abc.com", "dateOfBirth":"2019-12-12" }

When I am printing the object I received from post request it's printing it as

Customer [uniqueIdNumber=null, dateOfBirth=Wed Dec 12 05:30:00 IST 1990, emailAddress=smith@abc.com, firstName=null, lastName=null, idType=null, customeraddress=null, simdetails=null]

the date here is not in yyyy-MM-dd format.

Customerdto.java

package com.jpa.Proj.DTOs;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;

import com.jpa.Proj.Entities.Customeraddress;
import com.jpa.Proj.Entities.Simdetails;

public class CustomerDTO {

    String uniqueIdNumber;
    @DateTimeFormat(pattern="yyyy-MM-dd")
    Date dateOfBirth;
    String emailAddress;
    String firstName;
    String lastName;
    String idType;

    Customeraddress customeraddress;

    Simdetails simdetails;
    
    
    
    public String getUniqueIdNumber() {
        return uniqueIdNumber;
    }
    public CustomerDTO(String uniqueIdNumber, Date dateOfBirth, String emailAddress, String firstName, String lastName,
            String idType, Customeraddress customeraddress, Simdetails simdetails) {
        super();
        this.uniqueIdNumber = uniqueIdNumber;
        this.dateOfBirth = dateOfBirth;
        this.emailAddress = emailAddress;
        this.firstName = firstName;
        this.lastName = lastName;
        this.idType = idType;
        this.customeraddress = customeraddress;
        this.simdetails = simdetails;
    }
    @Override
    public String toString() {
        return "Customer [uniqueIdNumber=" + uniqueIdNumber + ", dateOfBirth=" + dateOfBirth + ", emailAddress="
                + emailAddress + ", firstName=" + firstName + ", lastName=" + lastName + ", idType=" + idType
                + ", customeraddress=" + customeraddress + ", simdetails=" + simdetails + "]";
    }
    public CustomerDTO() {
        super();
    }
    public void setUniqueIdNumber(String uniqueIdNumber) {
        this.uniqueIdNumber = uniqueIdNumber;
    }
    public Date getDateOfBirth() {
        return dateOfBirth;
    }
    public void setDateOfBirth(Date dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }
    public String getEmailAddress() {
        return emailAddress;
    }
    public void setEmailAddress(String emailAddress) {
        this.emailAddress = emailAddress;
    }
    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 getIdType() {
        return idType;
    }
    public void setIdType(String idType) {
        this.idType = idType;
    }
    public Customeraddress getCustomeraddress() {
        return customeraddress;
    }
    public void setCustomeraddress(Customeraddress customeraddress) {
        this.customeraddress = customeraddress;
    }
    public Simdetails getSimdetails() {
        return simdetails;
    }
    public void setSimdetails(Simdetails simdetails) {
        this.simdetails = simdetails;
    }


}

Customer.java

package com.jpa.Proj.Entities;

import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;

import org.springframework.format.annotation.DateTimeFormat;

@Entity
public class Customer {
    @Id
    String uniqueIdNumber;
    @DateTimeFormat(pattern="yyyy-MM-dd")
    Date dateOfBirth;
    String emailAddress;
    String firstName;
    String lastName;
    String idType;
    @OneToOne(cascade= CascadeType.ALL)
    @JoinColumn(name="addressId")
    Customeraddress customeraddress;
    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "simId")
    Simdetails simdetails;
    
    
    
    public String getUniqueIdNumber() {
        return uniqueIdNumber;
    }
    public Customer(String uniqueIdNumber, Date dateOfBirth, String emailAddress, String firstName, String lastName,
            String idType, Customeraddress customeraddress, Simdetails simdetails) {
        super();
        this.uniqueIdNumber = uniqueIdNumber;
        this.dateOfBirth = dateOfBirth;
        this.emailAddress = emailAddress;
        this.firstName = firstName;
        this.lastName = lastName;
        this.idType = idType;
        this.customeraddress = customeraddress;
        this.simdetails = simdetails;
    }
    @Override
    public String toString() {
        return "Customer [uniqueIdNumber=" + uniqueIdNumber + ", dateOfBirth=" + dateOfBirth + ", emailAddress="
                + emailAddress + ", firstName=" + firstName + ", lastName=" + lastName + ", idType=" + idType
                + ", customeraddress=" + customeraddress + ", simdetails=" + simdetails + "]";
    }
    public Customer() {
        super();
    }
    public void setUniqueIdNumber(String uniqueIdNumber) {
        this.uniqueIdNumber = uniqueIdNumber;
    }
    public Date getDateOfBirth() {
        return dateOfBirth;
    }
    public void setDateOfBirth(Date dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }
    public String getEmailAddress() {
        return emailAddress;
    }
    public void setEmailAddress(String emailAddress) {
        this.emailAddress = emailAddress;
    }
    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 getIdType() {
        return idType;
    }
    public void setIdType(String idType) {
        this.idType = idType;
    }
    public Customeraddress getCustomeraddress() {
        return customeraddress;
    }
    public void setCustomeraddress(Customeraddress customeraddress) {
        this.customeraddress = customeraddress;
    }
    public Simdetails getSimdetails() {
        return simdetails;
    }
    public void setSimdetails(Simdetails simdetails) {
        this.simdetails = simdetails;
    }
    
}

CustomerRepo.java

package com.jpa.Proj.Repos;

import java.util.Date;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Service;

import com.jpa.Proj.DTOs.CustomerDTO;
import com.jpa.Proj.Entities.Customer;
import com.jpa.Proj.Entities.Simdetails;
import com.jpa.Proj.Entities.Simoffers;


@Service
public interface CustomerRepo extends JpaRepository<Customer,Integer>{

     @Query("SELECT c from Customer c WHERE c.emailAddress=:cemail AND c.dateOfBirth =:cdob")
        Customer findByEmailAdressAndDob(@Param("cemail") String firstName,@Param("cdob") Date lastName);

     @Query("Select c from Customer c Where c.uniqueIdNumber=:cun")
     Customer findByID(@Param("cun") String un);
}

Following is my api:

public class Validatebasicdetailsapi {
    @Autowired
    CustomerRepo crepo;
    @PostMapping
    public CustomerDTO validatebasicdetails(@RequestBody CustomerDTO cdto) {
        
        
        
        
        
        System.out.println(cdto);
        Customer cdt= crepo.findByEmailAdressAndDob(cdto.getEmailAddress(),cdto.getDateOfBirth());
        
        System.out.println("Customer="+cdt);
        
//      System.out.println("date recieved="+cdto.getDateOfBirth());
        
        
        
        return new CustomerDTO();
    }
}
Anonymous
  • 37
  • 3

0 Answers0