JPA在项目的使用
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
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01