繁体   English   中英

在spring数据jpa中更新和插入查询

[英]update and insert query in spring data jpa

我正在制作一个REST API,其中我必须根据ID进行更新,并通过Spring Data在表中插入没有ID基础的数据。但是我在两种情况下都发现错误,它运行插入查询仅更新不起作用

存储库文件@Repository公共接口CustomerRepository扩展了JpaRepository {CustomerEntity save(CustomerEntity customerEntity); CustomerEntity findById(int id);

访问管理器文件

public CustomerDO create(CustomerDO customerReqDO){CustomerEntity customerEntity = null; CustomerDO customerResDO = new CustomerDO(); 如果(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(origins =“ *”)@PostMapping()public CustomerResponseDTO register(@RequestBody CustomerUpdateRequestDTO registerRequestDTO){CustomerDO customerReqDO = new CustomerDO(); CustomerResponseDTO loginResponseDTO =新的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;
}  

使用Hibernate中的条件:

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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM