当前位置:主页 > 资料 >

springboot~jpa个性化数据操作接口
栏目分类:资料   发布日期:2018-08-02   浏览次数:

导读:本文为去找网小编(www.7zhao.net)为您推荐的springboot~jpa个性化数据操作接口,希望对您有所帮助,谢谢! jap是个全能仓储 jap把很多数据库访问都封装了,并且提交了默认的一切数据方法签

本文为去找网小编(www.7zhao.net)为您推荐的springboot~jpa个性化数据操作接口,希望对您有所帮助,谢谢!

内容来自www.7zhao.net



jap是个全能仓储

jap把很多数据库访问都封装了,并且提交了默认的一切数据方法签名的约定,大家按着约定走,可以不写SQL语句,而如果比较复杂的情况,也需要写SQL,这里我们介绍一下查询和修改的实例方法,有一点要注意,==仓储的写操作是没有返回值==的。 copyright www.7zhao.net

  • 商品仓储个性接口
/**
 * 产品个性化接口.
 */
@Repository
public interface ProductDetailRepository extends
    CrudRepository<ProductDetail, Integer>,
    PagingAndSortingRepository<ProductDetail, Integer> {
  @Query("select p from ProductDetail p where UPPER(p.productName) like UPPER(?1)")
  List search(String term);

  @Transactional
  @Modifying
  @Query("UPDATE ProductDetail p SET p.shortDescription = ?2 WHERE p.productId = ?1")
  void updateDescrption(int id, String description);
} 

内容来自www.7zhao.net

  • controller中可以直接调用它,当前IOC这块于spring框架为我们实现了,直接使用注解即可
@RestController
@RequestMapping("/products")
public class ProductDetailController {
  private final ProductDetailRepository repository;
  private final ObjectMapper objectMapper;

  @Autowired
  public ProductDetailController(ProductDetailRepository repository, ObjectMapper objectMapper) {
    this.repository = repository;
    this.objectMapper = objectMapper;
  }
 @PutMapping("{id}")
  public HttpEntity search(@PathVariable int id, @RequestParam("q") String des) {
    repository.updateDescrption(id, des);
    return new ResponseEntity<>(HttpStatus.ACCEPTED);

  }
} www.7zhao.net 
  • 对于使用@Query实现写操作时,需要注释以下几点
  1. 方法返回值必须是void
  2. 必须添加 @Transactional和@Modifying注解
  3. SQL代码里表名和字段名都是 java里的实体名,而不是数据库的
  • 如果不遵循约定,它将出现下面的异常! 本文来自去找www.7zhao.net

    org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations 欢迎访问www.7zhao.net

去找(www.7zhao.net欢迎您


本文原文地址:http://www.cnblogs.com/lori/p/9402808.html

以上为springboot~jpa个性化数据操作接口文章的全部内容,若您也有好的文章,欢迎与我们分享! www.7zhao.net

Copyright ©2008-2017去找网版权所有   皖ICP备12002049号-2 皖公网安备 34088102000435号   关于我们|联系我们| 免责声明|友情链接|网站地图|手机版