2017-08-05 1 views
0

Ich mache eine Pause api, in dem ich auf einer ID-Basis zu aktualisieren und Daten ohne ID-Basen in einer Tabelle über Federdaten einfügen muss, aber ich finde einen Fehler in beiden Bedingungen es Läufe einfügen Abfrage nur Update nichtaktualisieren und einfügen Abfrage im Frühjahr Daten jpa

Repositorydatei @Repository public interface CustomerRepository JpaRepository { CustomerEntity save (CustomerEntity customerEntity) erstreckt arbeitet; CustomerEntity findById (int id);

access manager Datei

öffentliche CustomerDO erstellen (CustomerDO customerReqDO) {CustomerEntity customerEntity = null; CustomerDO customerResDO = new CustomerDO(); if (null! = CustomerReqDO.getId()) { customerEntity = customerRepository.findById (Integer.parseInt (customerReqDO.getId())); if (! Null = customerEntity) {

  if(null != customerReqDO.getName()) 
       customerEntity.setName(customerReqDO.getName()); 

      if(null != customerReqDO.getPhone()) 
       customerEntity.setPhone(customerReqDO.getPhone()); 

      if(null != customerReqDO.getEmail()) 

       customerEntity.setEmail(customerReqDO.getEmail()); 

      if(null != customerReqDO.getPassword()) 
       customerEntity.setPassword(customerReqDO.getPassword()); 
      //if(null !=customerReqDO.getCredits()) 
       //customerReqEntity.setCredits(customerReqDO.getCredits()); 

      customerEntity =customerRepository.save(customerEntity); 

      }else{ 
        customerResDO.setError("Invalid Customer id "+customerReqDO.getId()); 
      }}else{ 
    customerEntity=new CustomerEntity();      
    customerEntity.setName(customerReqDO.getName()); 
    customerEntity.setPhone(customerReqDO.getPhone()); 
    customerEntity.setEmail(customerReqDO.getEmail()); 

    //customerReqEntity.setFacebookID(customerReqDO.getFacebookID()); 
    customerEntity.setPassword(customerReqDO.getPassword()); 
    //customerReqEntity.setCredits(customerReqDO.getCredits()); 

    customerEntity =customerRepository.save(customerEntity); 

      }if(null != customerEntity){ 
       customerResDO.setId(String.valueOf(customerEntity.getId())); 
       customerResDO.setName(customerEntity.getName()); 
       customerResDO.setPhone(customerEntity.getPhone()); 
       customerResDO.setEmail(customerEntity.getEmail()); 
       customerResDO.setPassword(customerEntity.getPassword()); 
       //deliveryLocationResponseDO.setDeliverytimes(Arrays.asList(deliveryLocationEntity.getDeliverytimes())); 
      } 
    return customerResDO; 

} 



controller 

@CrossOrigin (Ursprung = "*") @PostMapping() öffentliches CustomerResponseDTO Register (@RequestBody CustomerUpdateRequestDTO registerRequestDTO) { CustomerDO customerReqDO = new CustomerDO(); CustomerResponseDTO loginResponseDTO = Neu CustomerResponseDTO(); customerReqDO.setName (registerRequestDTO.getName()); customerReqDO.setEmail (registerRequestDTO.getEmail()); customerReqDO.setPhone (registerRequestDTO.getPhone()); customerReqDO.setPassword (registerRequestDTO.getPassword());

CustomerDO customerResDO = customerLoginManagerImpl.insert(customerReqDO); 

    if(null != customerResDO.getError()){ 
     loginResponseDTO.setError(customerResDO.getError()); 
    }else{ 


    loginResponseDTO.setSucess(true); 
} 

    return loginResponseDTO; 
} 
+0

Implementierung Manager – bkumar

+0

öffentlichen CustomerDO Einsatz (CustomerDO customerReqDO) \t { \t \t CustomerDO customerResDO = customerAccessManager.create (customerReqDO); \t \t zurück KundenResDO; \t} – bkumar

+0

Darf ich wissen, was Sie hier erwarten ?. Möchten Sie wissen, wie man in sping Daten jpa einfügt und aktualisiert? Rufen Sie einfach die Speichermethode des JpaRepository auf. – Barath

Antwort

0

anhand von Kriterien aus dem Ruhezustand:

Session session = sessionFactory.openSession(); 
Transaction tx = session.beginTransaction(); 

String query= "update TableName c set c.attribute= :newAttribute where c.id=:id"; 
int updatedEntities = s.createQuery(query) 
    .setString("newAttribute ", newAttribute) 
    .setString("id", id) 
    .executeUpdate(); 
tx.commit(); 
session.close(); 
Verwandte Themen