springboot~jpa个性化数据操作接口[通俗易懂]

springboot~jpa个性化数据操作接口[通俗易懂]springboot~jpa个性化数据操作接口

大家好,又见面了,我是你们的朋友全栈君。

jap是个全能仓储

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

  • 商品仓储个性接口
/**
 * 产品个性化接口.
 */
@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);
}
  • 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);

  }
}
  • 对于使用@Query实现写操作时,需要注释以下几点
  1. 方法返回值必须是void
  2. 必须添加 @Transactional和@Modifying注解
  3. SQL代码里表名和字段名都是 java里的实体名,而不是数据库的
  • 如果不遵循约定,它将出现下面的异常!
    org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107387.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • AAA认证详解

    AAA认证详解802.1x(基于端口的认证)802.1x的主要功能:对接入的用户做认证,防止未授权的用户访问网络802.1x起源于无线当用户插上网线时,交换机会提示用户执行802.1x认证(输入用户名和密码),当开启802.1X认证的交换机,在端口检测到有网卡接入的时候,交换机会想接入该端口的主机发送EAPOL数据帧,要求进行认证在交换机认证成功之前(802.1x)只允许三种流量通过:…

    2022年5月2日
    96
  • 克莱因瓶莫比乌斯带_克莱因瓶剪莫比乌斯带

    克莱因瓶莫比乌斯带_克莱因瓶剪莫比乌斯带  [克莱茵瓶&莫比乌斯带]在1882年,著名数学家菲立克斯·克莱因(FelixKlein)发现了后来以他的名字命名的著名“瓶子”。这是一个象球面那样封闭的(也就是说没有边)曲面,但是它却只有一个面。在图片上我们看到,克莱因瓶的确就象是一个瓶子。但是它没有瓶底,它的瓶颈被拉长,然后似乎是穿过了瓶壁,最后瓶颈和瓶底圈连在了一起。如果瓶颈不穿过瓶壁而…

    2025年11月6日
    4
  • 手动实现一维离散数据小波分解与重构

    手动实现一维离散数据小波分解与重构前言本文集中前面主要介绍了离散数据的傅里叶变换,并且得到了较好的效果!那既然有了傅里叶变换这个工具,为什么还需要小波变换呢?因为:傅里叶变换只能告诉你原始信号中有哪些频率,但不能告诉你这些频率的信号出现在什么时间!也就说明:如果信号是”时变”的(频率随着时间是改变的),那么单纯用傅里叶变换所能反映的信息就十分有限了!因此,针对时变信号,我们使用小波变换。图1展示”时变信号”与”时不变信号”区别:图1:时不变信号与时变信号时不变与时变的区别,看下面的实现的代码就很轻易理解:x=0:0.001:1

    2022年10月7日
    4
  • C#开发WebService实例和发布

    C#开发WebService实例和发布WebService是一种跨平台,独立于编程语言之外的通信技术,将其部署在服务器端,在网络内的所有设备都可以调用这个WebService。本文介绍用C#开发WebService实例以及其部署和调用。首先是一个简单的WebService工程的创建:1、创建一个asp.netweb应用程序,我这里起名字叫WebServiceTest2、创建一个空的模板3、然后给这个空项目添加web服务…

    2022年7月21日
    11
  • verycd下载办法_无损音乐 MKV 下载

    verycd下载办法_无损音乐 MKV 下载自2012年8月30日之后,verycd上所有资源的ed2k下载链接均被隐藏。没有登录的会员会显示“该资源为版权方声明保护内容,VeryCD不提供其下载”的字样现在电驴也不让下载了,和以前的狗狗一样,资源都屏蔽了,今天无意得到了一个可以下载电驴上的资源的方法,很简单,应该是漏洞,不知道能用多久,但是目前至少可以用。自2012年8月30日之后,verycd上所有资源的ed2k下载链接均被隐藏。没有登

    2022年8月10日
    6
  • WinRAR去广告方法,了解一下?[通俗易懂]

    WinRAR去广告方法,了解一下?[通俗易懂]经常看到有些人电脑上安装的WinRAR中文版,打开压缩包的时候总是弹出广告,然后又习惯性的点了关闭;作为一名计算机专业的小白,我就忍不了了,找啊找~终于让我找到了去广告的方法233~~~需要用的工具:WinRAR中文版Restorator2007step1:下载安装winRAR,用WinRAR打开一个压缩包确认是否弹广告。(不弹广告就可以走了,没必要看哈哈;有广告接着往下看!…

    2022年6月9日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号