• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

JPA在项目的使用

武飞扬头像
阿帆哥
帮助1

JPA在项目中的使用

项目类型:企业商场项目,分为小程序端和后台管理端
使用框架:Spring SpringBoot 采用spring-cloud-alibaba 的微服务架构nacos做注册中心,openfeign做远程调用。


问题描述:JPA如何操作数据库

之前的项目中一直使用的是mybatis和mybaitsplus操作数据库,现公司的架构是jpa操作数据库,那么JPA如何操作数据库?

直接看Repository层也就是我们之前说的Dao层

1.Dao层直接继承
JpaRepository<Commodity, String>: 操作Commodity这个实体类(关联表),String表示主键id的类型。
JpaSpecificationExecutor:让你可以直接使用其中自带写好的一些方法。

2.自定义方法,类似于mybatis写sql语句,JPA则是直接对对象进行操作

@Repository("commodityDao")
public interface CommodityDao extends JpaRepository<Commodity, String>, JpaSpecificationExecutor<Commodity> {

    /**
     * (逻辑删除)
     *
     * @param delIds
     */
    @Modifying
    @Transactional
    @Query("update Commodity c set  c.isEnabled=-1  where c.id in(?1)")
    void delByModelSpecificationIds(List<String> delIds);

	//查询商品表的id数量,当商品的code=传递的参数的第一个
    @Query("select count(c.id) from Commodity c where c.code=?1")
    int getCountByCode(String code);

	//修改商品的isPutAway=?1  即修改isPutAway的值为传参的第一个,in (?2)即
    @Modifying
    @Transactional
    @Query("update Commodity c set c.isPutAway=?1 where c.id in (?2)")
    void putAwayByIds(Integer putAwayType, List<String> ids);
学新通

3.以上就实现了对商品表的操作
学新通

4.增删改查
增:直接通过commodityDao.save() , 存的对象带id即代表修改,否则为新增。
删:逻辑删即修改,通过@query注解 update 对象 别名 set 别名.字段 = ;
改:@Query(“update Commodity c set c.isPutAway=?1 where c.id in (?2)”)
查:@Query(“select count(c.id) from Commodity c where c.code=?1”)

  •  

5.刚上手时操作对象不顺手,也可支持直接使用原生的sql语句nativeQuery = true

 @Query(value = "select * from tb_ally_search_history where user_id =:id order by modify_time desc limit 10  ",nativeQuery = true)
    List<SearchHistory> findAllNewByUserId(@Param("id") String userId);

如上:通过原生sql直接对该用户修改时间字段排序,并取10条。

ps:表名字段需跟数据库对应上,不再是跟实体类对应。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaegge
系列文章
更多 icon
同类精品
更多 icon
继续加载