[英]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.